TNFR Logo
TheoryLearnSoftwareResearch

On this page

TNFR

Resonant Fractal Nature Theory — a mathematical framework for coherent patterns on graph-coupled networks.

About
  • Project history
  • Editorial policy
  • Contact
Resources
  • GitHub
  • PyPI
  • DOI · Zenodo
Legal
  • MIT License
  • Citation
© 2026 TNFR project — MIT licensed.DOI 10.5281/zenodo.17602860
docs
grammar
PHYSICS_VERIFICATION.md
API_CONTRACTS.mdCANONICAL_OZ_SEQUENCES.mdEMPIRICAL_CONFRONTATION_EEG.mdREADME.mdSTRUCTURAL_FIELDS_TETRAD.mdSTRUCTURAL_INTERFACE_THEORY.md
theory
APPLIED_STRUCTURAL_ANALYSIS.mdCATALOG_TYPE_HYGIENE_PROGRAMME.mdDISSIPATIVE_AND_OPEN_SYSTEMS.mdEMERGENT_ONTOLOGY.mdEXTENDED_FIELDS_AND_DERIVED_QUANTITIES.mdFUNDAMENTAL_THEORY.mdGAUGE_SYMMETRY_AND_UNIFICATION.mdGLOSSARY.mdMATHEMATICAL_DYNAMICS_BASIS.mdMINIMAL_STRUCTURAL_DEGREES.mdNUCLEUS_A_PRIME_LADDER_ATLAS.mdNUCLEUS_B_EQUIVARIANCE_OBSTRUCTIONS.mdPHYSICAL_REGIME_CORRESPONDENCES.mdREADME.mdREMESH_INFINITY_DERIVATION.mdSTRUCTURAL_CONSERVATION_THEOREM.mdSTRUCTURAL_OPERATORS.mdSTRUCTURAL_STABILITY_AND_DYNAMICS.mdTNFR_BSD_RESEARCH_NOTES.mdTNFR_HODGE_RESEARCH_NOTES.mdTNFR_NAVIER_STOKES_RESEARCH_NOTES.mdTNFR_NUMBER_THEORY.mdTNFR_P_VS_NP_RESEARCH_NOTES.mdTNFR_RIEMANN_RESEARCH_NOTES.mdTNFR_VARIATIONAL_PRINCIPLE.mdTNFR_YANG_MILLS_RESEARCH_NOTES.mdTNFR.pdfUNIFIED_GRAMMAR_RULES.md
factorization-lab
analysis
analyze_patterns.pycertificate_manifest.py
benchmarks
benchmark_analysis.pybenchmark_expansion_suite.pyfull_spectrum_factorization.pypaley_gap_extended.pypaley_gap_smoke.pytest_benchmark_suite.py
demos
experiment_contexts
exp_0b1663cd19b7.jsonexp_0bf0054b7474.jsonexp_75a4c8ca616a.jsonexp_848ee0fd1857.jsonexp_f6fe00562193.jsonexp_fdf3da424e1e.json
failure_telemetry_batch.pyfeedback_integration_demo.pyintegration_demo_snapshots.dbseed_management_integration_demo.pysnapshot_integration_demo.pytrajectory_143.jsontrajectory_77.jsontrajectory_89.jsontrajectory_91.jsontrajectory_97.json
docs
FACTORING_PLAYBOOK.mdFALSE_POSITIVE_TEST_SUITE.mdOPERATOR_CERTIFICATES.mdROADMAP.mdSPECTRAL_ROUTE.md
experiment_contexts
exp_cebe1d9e7d8e.json
notebooks
spectral_history.ipynb
scripts
run_false_positive_tests.py
tests
run_false_positive_test_suite.pytest_cli.pytest_false_positive_methodology.pytest_false_positive_verifier.pytest_feedback_integration.pytest_partitioning.pytest_seed_management.pytest_self_opt_support.pytest_snapshot_system.pytest_spectral_paley.pytest_verification_robustness.py
tnfr_factorization
__init__.pyapi.pycli.pyfailure_telemetry.pyfeedback_adapter.pyfeedback_integration.pypartitioning.pyself_opt_support.pyspectral_paley.py
demo_snapshots.dbLICENSE_SNAPSHOT.mdPACKAGE_SUMMARY.mdREADME.mdseed_management.pysnapshot_system.pytest_certificate_hashing.pytest_installation.pyverification_trajectory_77.json
benchmarks
analyze_tetrad_universality.pyb0star_alpha_canonical_product_graphs.pybenchmark_optimization_tracks.pybenchmark_utils.pyboundary_vibration.pybridge_primes_riemann.pychiral_involution.pycli_utils.pycoherence_projector_sense_index.pycommutant_bridge.pycomposition_arithmetic.pyconfinement_zones_test.pyconservation_law_validation.pydirected_paley_bridge.pyemergent_arithmetic_pulse.pyemergent_atom_dynamics.pyemergent_atomic_shells.pyemergent_base_dimension.pyemergent_dimension_dynamics.pyemergent_fractal_pulse.pyemergent_fractal_simplex_dimension.pyemergent_integers_symmetry.pyemergent_musical_nfr.pyemergent_nfr_geometry.pyemergent_nfr_where.pyemergent_rationals.pyemergent_rhythm.pyemergent_screening.pyemergent_shell_cardinals.pyemergent_shell_ordering.pyemergent_simplex_dimension.pyemergent_substrate_symmetry.pyequivariance_wall.pyexternal_phase_gate_validation.pyfield_methods_battery.pygolden_residue_remesh_bridge.pyintegrated_force_regime_study.pyinverse_spectrum_to_symmetry.pyk_phi_safety_demo.pykuramoto_farey_bridge.pymissing_piece_bridge.pymultichannel_interface_benchmark.pynavier_stokes_recipe_bridge.pynodal_propagator_residue_bridge.pyns_moment_hierarchy_cascade.pyoperational_irreducibility.pypaley_bridge.pyphase_curvature_investigation.pyphase_wall.pyphi_s_confinement_investigation.pyprimes_as_consequence.pypulse_phase_coherence_budget.pyREADME.mdremesh_infinity_riemann_baseline.pyremesh_infinity_riemann_composed.pyremesh_infinity_riemann_modified_graph.pyremesh_infinity_riemann_operator.pyremesh_infinity_riemann_spectral_basis.pyremesh_infinity_riemann_spectral_robustness.pyremesh_infinity_riemann_spectral.pyresidue_phase_vs_riemann.pystructural_interface_benchmark.pytemporal_interface_benchmark.pytetrad_results_aggregate.pyu2_destabilization_irreversibility.pyuniversality_clusters.pyxi_c_fast_experiment.py
primality-test
benchmarks
comprehensive_benchmark.py
docs
ADVANCED_INTEGRATION.mdmathematical_foundation.mdperformance_analysis.md
examples
advanced_examples.pybasic_usage.py
tnfr_primality
__init__.py__main__.pyadvanced_cli.pyadvanced_core.pycli.pyconstants.pycore.pyoptimized.py
MANIFEST.inPACKAGE_SUMMARY.mdREADME.mdRELEASE_NOTES_v1.0.mdsetup.pytest_installation.py
tests
core_physics
__init__.pytest_conservation_laws.pytest_delta_nfr_computation_paths.pytest_delta_nfr.pytest_dispersion_coherence_sign_invariance.pytest_emergent_constants_guard.pytest_lyapunov_operators.pytest_nodal_equation.pytest_structural_triad.py
data
replay_manifests
sample_run
_manifest_summary.json_manifest.json_partition_files.txt.gz
self_opt_validation
seed_alpha
paley.json
seed_beta
integration.json
seed_gamma
unknown.json
self_optimization
test_run
partitioned
test_run
test_run_p0.jsontest_run_p1.json
_manifest_summary.json_manifest.json
engines
test_pattern_discovery_manifest.pytest_self_optimization_engine.py
mathematics
__init__.pytest_autodiff.pytest_backends.pytest_dissipative_dynamics.pytest_epi.pytest_factory_patterns.pytest_metrics.pytest_navier_stokes_refounded.pytest_number_theory_canonical.pytest_operators.pytest_residue_networks.pytest_riemann_nodal_pulse.pytest_riemann_pulse_coherence.pytest_spaces.pytest_transforms.pytest_validator.py
operators
test_canonical_operators_modern.pytest_grammar_canon.pytest_grammar_canonical_consistency.pytest_grammar_dynamics.pytest_operator_contracts.pytest_operator_strategies.py
parallel
test_fractal_partition_manifest.py
physics
test_conservation_gauge_unification.pytest_dissipative_conservation.pytest_emergent_chemistry.pytest_field_cache_invalidation.pytest_gauge.pytest_phase_transition.pytest_signatures.pytest_spectral_conservation.pytest_structural_diffusion.pytest_structural_integrity.pytest_symplectic_substrate.pytest_tetrad_bounds.pytest_variational.pytest_yang_mills_closure.pytest_yang_mills_derivability.pytest_yang_mills_scaling.pytest_yang_mills_structural_gap.pytest_yang_mills_u6_sweep.py
scripts
test_run_self_opt_validation.pytest_run_self_optimization.py
sdk
__init__.pytest_simple_advanced.py
__init__.pyconftest.pyREADME.mdtest_breast_cancer_phase_gate_demo.pytest_classical_mechanics.pytest_distributed_fft.pytest_external_phase_gate_validation.pytest_factorization_entrypoint.pytest_multichannel_interface.pytest_nodal_optimizer.pytest_phase_gate_api.pytest_replay_register_manifest.pytest_signal_confrontation.pytest_structural_interface_api.pytest_structural_interface_baselines.pytest_structural_interface_benchmark.pytest_temporal_interface.pytest_vectorized_coherence_length_regression.pytest_wine_quality_phase_gate_demo.pyutils.py
examples
01_foundations
01_hello_world.py02_musical_resonance.py03_network_formation.py04_operator_sequences.py05_coherence_evolution.py06_network_topologies.py07_phase_transitions.py08_emergent_phenomena.py09_visualization_suite.py10_simplified_sdk_showcase.py
02_physics_regimes
11_classical_limit_comparison.py115_operator_contract_audit.py12_classical_mechanics_demo.py13_quantum_mechanics_demo.py14_uncertainty_and_interference.py15_train_crossing_demo.py17_conservation_law_demo.py26_gauge_structure_demo.py27_variational_principle_demo.py28_dissipative_systems_demo.py29_lyapunov_stability_demo.py30_self_optimization_demo.py31_mathematical_constants_basis.py33_complex_field_unification.py34_conservation_protocol_suite.py35_tetrad_irreducibility.py36_grammar_violation_detector.py37_operator_tetrad_synergy.py38_grammar_energy_landscape.py39_nodal_equation_decomposition.py
03_riemann_zeta
157_nodal_pulse_phase_attack.py41_von_mangoldt_zeta_demo.py42_riemann_zeros_as_resonances.py43_prime_ladder_hamiltonian_demo.py44_weil_explicit_formula_demo.py45_li_keiper_demo.py46_weil_tnfr_positivity_demo.py47_alpha_sweep_demo.py48_admissible_family_sweep_demo.py49_nodeaware_gauge_sweep_demo.py50_uniform_coercivity_demo.py51_adaptive_coercivity_demo.py52_paley_gap_coercivity_demo.py53_lyapunov_spectral_positivity_demo.py54_hilbert_polya_demo.py55_structural_zero_density_demo.py56_spectral_emergence_demo.py57_admissible_rescaling_demo.py58_oscillatory_correction_demo.py
04_riemann_L_twisted
59_dirichlet_l_function_demo.py60_dirichlet_l_continuation_demo.py61_dirichlet_l_hamiltonian_demo.py62_dirichlet_weil_explicit_formula_demo.py63_dirichlet_li_keiper_demo.py64_twisted_weil_positivity_demo.py65_twisted_alpha_sweep_demo.py66_twisted_admissible_family_sweep_demo.py67_twisted_nodeaware_gauge_sweep_demo.py68_twisted_hermite_family_demo.py69_twisted_coercivity_uniform_demo.py70_twisted_paley_gap_coercivity_demo.py71_twisted_lyapunov_spectral_demo.py72_twisted_hilbert_polya_demo.py73_twisted_structural_zero_density_demo.py74_twisted_spectral_emergence_demo.py75_twisted_admissible_rescaling_demo.py76_twisted_oscillatory_correction_demo.py
05_type_hygiene
77_remesh_infinity_residue_split_demo.py78_nuf_type_signature_demo.py79_epi_type_signature_demo.py80_phi_type_signature_demo.py81_dnfr_type_signature_demo.py82_remesh_window_type_signature_demo.py83_delta_phi_max_type_signature_demo.py84_coupling_weights_type_signature_demo.py85_tetrad_closure_signature_demo.py86_currents_closure_signature_demo.py87_aggregates_closure_signature_demo.py88_urules_consistency_signature_demo.py89_operator_catalog_discipline_signature_demo.py
06_navier_stokes
158_navier_stokes_two_face_refounded.py
07_number_theory
100_prime_families_orbits.py101_numbers_as_coupled_network.py102_nodal_flow_primes_equilibria.py116_nuf_emergent_prime_visibility.py146_primality_grammatical_inertness.py147_numbers_as_free_monoid_words.py148_capacity_arm_carries_von_mangoldt.py149_p14_is_the_capacity_arm_operator.py153_structural_frequency_rank_cyclotomy.py40_arithmetic_number_theory.py94_generative_number_construction.py95_primes_from_spectral_waves.py96_spectral_vibration_of_coherence.py97_goldbach_additive_multiplicative.pyemergent_chemistry_particles_demo.py
08_emergent_geometry
103_emergent_substrate_meets_riemann.py106_per_node_polarization_geometry.py107_orthogonal_structure_emergent_geometry.py108_emergent_field_generating_structure.py112_structure_predicts_coherence_flow.py113_overdamped_projection_bridge.py114_substrate_conserved_quantities.py117_emergent_geometry_residue_graph.py118_emergent_vs_classical_operator.py119_phase_sector_directed_residue.py120_symmetry_wall_substrate_vs_spectrum.py121_canonical_symmetry_break_negative.py122_factorization_phase_sector.py123_symmetry_sector_decomposition.py124_emergent_metric_fractal_consistency.py125_node_is_the_emergent_substrate.py126_two_layers_base_fiber.py127_base_is_emergent_not_imposed.py128_base_substrate_coemergence.py129_spectral_gap_base_fiber_clock.py130_operators_break_substrate_charges.py131_coemergent_loop_convergence.py132_geometric_phase_holonomy.py133_psi_topological_defects.py134_spectral_dimension_heat_kernel.py135_arrow_of_time_h_theorem.py136_heat_kernel_coefficients.py137_synchronization_transition.py138_structure_frequency_synchronization.py139_grammar_formal_language.py140_grammar_automaton.py141_grammar_rule_decomposition.py142_grammar_operator_quotient.py143_glyphic_function_sublanguage.py144_branching_combinator.py145_syntactic_monoid_starfree.py150_emergent_grammatical_pattern_parry.py151_grammar_in_emergent_geometry.py152_operator_contract_tetrahedron.py154_conductor_annotated_qr_spectrum.py155_ontological_position_of_numbers.py156_emergence_directness_law.py98_emergent_symplectic_substrate.py99_structural_diffusion.pyunified_fields_showcase.py
09_millennium
109_p_vs_np_coherence_synthesis.py110_bsd_rank_structural_pressure.py111_hodge_discrete_and_honest_gap.py
10_applications
159_empirical_confrontation_pipeline.py90_phase_gate_monitor_demo.py91_breast_cancer_phase_gate_demo.py92_wine_quality_phase_gate_demo.py93_structural_interface_demo.pypytorch_cuda_demo.py
README.md
scripts
replay
__init__.pyregister_manifest.py
__init__.pyREADME.mdrebuild_failure_manifest.pyrun_reproducible_benchmarks.pyrun_self_opt_validation.pyrun_self_optimization.pytnfr_is_prime.pyvalidate_conservation_law.pyverify_internal_references.py
src
core
__init__.pyevaluation.py
tnfr
backends
__init__.pyjax_backend.pynumpy_backend.pyoptimized_numpy.pyREADME.mdtorch_backend.py
cli
__init__.py__init__.pyiarguments.pyarguments.pyiexecution.pyexecution.pyiinteractive_validator.pyREADME.mdutils.pyutils.pyi
compat
__init__.pydataclass.pyjsonschema_stub.pymatplotlib_stub.pynumpy_stub.pyREADME.md
config
__init__.py__init__.pyiconstants.pyconstants.pyidefaults_core.pydefaults_init.pydefaults_metric.pydefaults.pyfeature_flags.pyfeature_flags.pyiglyph_constants.pyoperator_names.pyoperator_names.pyiphysics_derivation.pyprecision_modes.pypresets.pypresets.pyiREADME.mdsecurity.pythresholds.pytnfr_config.py
constants
__init__.py__init__.pyialiases.pyaliases.pyicanonical.pymetric.pymetric.pyioperational.py
core
__init__.pycontainer.pydefault_implementations.pyexceptions.pyinterfaces.pyREADME.md
dynamics
__init__.py__init__.pyiadaptation.pyadaptation.pyiadaptive_sequences.pyadaptive_sequences.pyiadelic.pyadvanced_cache_optimizer.pyadvanced_fft_arithmetic.pyaliases.pyaliases.pyibifurcation.pycache_aware_fft_engine.pycanonical.pycanonical.pyicomputational_hub.pycoordination.pycoordination.pyidistributed_fft.pydnfr.pydnfr.pyidynamic_limits.pyemergent_centralization.pyemergent_integration_engine.pyfeedback.pyfeedback.pyifft_backend.pyfft_cache_coordinator.pyfft_dispatchers.pyfft_engine.pyfft_workers.pyfused_dnfr.pyhomeostasis.pyhomeostasis.pyiintegrators.pyintegrators.pyilearning.pylearning.pyimetabolism.pymulti_modal_cache.pynbody_tnfr.pynbody.pynodal_optimizer.pyoptimization_orchestrator.pypropagation.pyREADME.mdruntime.pyruntime.pyisampling.pysampling.pyiselectors.pyselectors.pyiself_optimizing_engine.pyspectral_structural_fusion.pystructural_cache.pystructural_clip.pysymplectic.pyunified_backend.pyunified_mathematical_cache_orchestrator.py
engines
computation
__init__.pyfft_engine.pyunified_fft_engine.pyunified_gpu_system.py
constants
__init__.pycanonical.pyoperational.py
integration
__init__.pyemergent_integration.py
pattern_discovery
__init__.pymathematical_patterns.pymulti_modal_cache.py
self_optimization
__init__.pyengine.py
__init__.pyREADME.md
errors
__init__.pycontextual.py
factorization
__init__.py
flatten
README.md
gamma
README.md
glyph_history
README.md
glyph_runtime
README.md
immutable
README.md
initialization
README.md
io
README.md
math
__init__.pyfields_symbolic.pygrammar_validators.pyoptimizer.pyREADME.mdsymbolic.py
mathematics
__init__.pybackend.pybackend.pyidynamics.pydynamics.pyiepi.pyepi.pyigenerators.pygenerators.pyiliouville.pymetrics.pymetrics.pyinumber_theory.pyoperators_factory.pyoperators_factory.pyioperators.pyoperators.pyioptimized_primality.pyprojection.pyprojection.pyiREADME.mdruntime.pyruntime.pyispaces.pyspaces.pyispectral.pytransforms.pytransforms.pyiunified_cache.pyunified_numerical.pyzeta.py
metrics
__init__.py__init__.pyibuffer_cache.pybuffer_cache.pyicache_utils.pycoherence.pycoherence.pyicommon.pycommon.pyicore.pycore.pyidiagnosis.pydiagnosis.pyiemergence.pyexport.pyexport.pyiglyph_timing.pyglyph_timing.pyilearning_metrics.pylearning_metrics.pyilocal_coherence.pyphase_coherence.pyphase_compatibility.pyREADME.mdreporting.pyreporting.pyisense_index.pysense_index.pyitelemetry.pytetrad.pytrig_cache.pytrig_cache.pyitrig.pytrig.pyi
multiscale
__init__.pyhierarchical.pyREADME.md
navier_stokes
__init__.pyconservative_face.pyoperator.py
node
README.md
observers
README.md
operators
network_analysis
__init__.pysource_detection.py
postconditions
__init__.pymutation.py
preconditions
__init__.pycoherence.pydissonance.pyemission.pymutation.pyreception.pyresonance.py
strategies
__init__.pydefaults.pygpu_strategies.pystrategy.py
__init__.py__init__.pyialgebra.pycanonical_patterns.pycascade.pycoherence.pycontraction.pycoupling.pycycle_detection.pydefinitions_base.pydefinitions.pydefinitions.pyidissonance.pyemission.pyexpansion.pygrammar_application.pygrammar_canon.pygrammar_context.pygrammar_core.pygrammar_dynamics.pygrammar_error_factory.pygrammar_memoization.pygrammar_patterns.pygrammar_telemetry.pygrammar_types.pygrammar_u6.pygrammar_validate.pygrammar.pygrammar.pyihamiltonian.pyhealth_analyzer.pyintrospection.pyjitter.pyjitter.pyilifecycle.pymetabolism.pymetrics_basic.pymetrics_core.pymetrics_network.pymetrics_structural.pymetrics_u6.pymetrics.pymutation.pynodal_equation.pyoperator_contracts.pypattern_detection.pypatterns.pyREADME.mdreception.pyrecursivity.pyregistry.pyregistry.pyiremesh.pyremesh.pyiresonance.pyself_organization.pysilence.pystructural_units.pytransition.py
parallel
__init__.pyauto_scaler.pydistributed.pyengine.pymonitoring.pypartitioner.pyREADME.md
performance
guardrails.py
physics
__init__.py_helpers.pycalibration.pycanonical.pycell.pyclassical_mechanics.pyconservation_gauge_unification.pyconservation.pydissipative_conservation.pyemergent_chemistry.pyemergent_particles.pyextended.pyfields.pygauge.pyintegrity.pyinteractions.pylife.pylyapunov.pypatterns.pyphase_transition.pyquantum_mechanics.pyREADME.mdsignatures.pyspectral_conservation.pyspectral_metrics.pystructural_diffusion.pysymplectic_substrate.pytelemetry.pyunified.pyvariational.pyvectorized_ops.py
primality
__init__.py
recipes
__init__.pycookbook.pyREADME.md
riemann
__init__.pyadmissible_family_sweep.pyadmissible_rescaling.pyaggregates_closure_signature.pyalpha_sweep.pyanalytic_continuation_dirichlet.pyanalytic_continuation.pycoercivity_uniform.pycoupling_weights_type_signature.pycurrents_closure_signature.pydelta_phi_max_type_signature.pydirichlet_l.pydnfr_type_signature.pyepi_type_signature.pyhilbert_polya.pyli_keiper.pylyapunov_spectral_positivity.pynodal_pulse.pynodeaware_gauge_sweep.pynuf_type_signature.pyoperator_catalog_discipline_signature.pyoperator.pyoscillatory_correction.pypaley_gap_coercivity.pyphi_type_signature.pyprime_ladder_hamiltonian.pypulse_coherence.pyremesh_infinity_residue_split.pyremesh_window_type_signature.pyspectral_emergence.pystructural_zero_density.pytelemetry.pytetrad_closure_signature.pytwisted_admissible_family_sweep.pytwisted_admissible_rescaling.pytwisted_alpha_sweep.pytwisted_coercivity_uniform.pytwisted_hermite_family.pytwisted_hilbert_polya.pytwisted_li_keiper.pytwisted_lyapunov_spectral_positivity.pytwisted_nodeaware_gauge_sweep.pytwisted_oscillatory_correction.pytwisted_paley_gap_coercivity.pytwisted_prime_ladder_hamiltonian.pytwisted_spectral_emergence.pytwisted_structural_zero_density.pytwisted_weil_explicit_formula.pytwisted_weil_positivity.pyurules_consistency_signature.pyvon_mangoldt.pyweil_explicit_formula.pyweil_positivity.py
schemas
__init__.pygrammar.jsonREADME.md
sdk
__init__.py__init__.pyiadaptive_system.pyadaptive_system.pyibuilders.pybuilders.pyifluent.pyfluent.pyiREADME.mdself_opt.pysimple.pytemplates.pytemplates.pyiutils.py
security
__init__.pycrypto.pydatabase.pyREADME.mdsubprocess.pyvalidation.py
sequencing
__init__.pypatterns.pyREADME.md
services
__init__.pyorchestrator.pyREADME.md
sparse
__init__.pyREADME.mdrepresentations.py
structural
README.md
telemetry
__init__.pycache_metrics.pycache_metrics.pyiconstants.pynu_f.pynu_f.pyiREADME.mdunified_telemetry_system.pyverbosity.pyverbosity.pyi
tools
__init__.pydomain_templates.pyREADME.mdsequence_generator.pytnfr_is_prime_cli_optimized.pytnfr_is_prime_cli.py
topology
__init__.pyasymmetry.pyREADME.md
utils
cache_layers.pycache.pycache.pyicallbacks.pycallbacks.pyichunks.pychunks.pyidata.pydata.pyifast_diameter.pygraph.pygraph.pyiinit.pyinit.pyiio.pyio.pyinumeric.pynumeric.pyiREADME.mdtopology.pyunified_cache.py
validation
__init__.py__init__.pyiaggregator.pybase.pycompatibility.pycompatibility.pyiconfig.pygraph.pygraph.pyihealth.pyinput_validation.pyinterface_baselines.pyinvariants.pymultichannel_interface.pyphase_gate.pyREADME.mdrules.pyrules.pyiruntime.pyruntime.pyisequence_validator.pysignal_confrontation.pysoft_filters.pysoft_filters.pyispectral.pyspectral.pyistructural_interface.pytemporal_interface.pyunified_validation_system.pyvalidator.pywindow.pywindow.pyi
visualization
__init__.pycascade_viz.pyhierarchy.pyREADME.mdsequence_plotter.py
yang_mills
__init__.pyclosure.pyderivability.pyscaling.pystructural_gap.pyu6_sweep.py
__init__.py__init__.pyi_compat.py_version.py_version.pyialias.pyalias.pyibackend_config.pycache.pycache.pyiexecution.pyexecution.pyiflatten.pyflatten.pyigamma.pygamma.pyiglyph_history.pyglyph_history.pyiglyph_runtime.pyglyph_runtime.pyiimmutable.pyimmutable.pyiinitialization.pyinitialization.pyiio.pyio.pyilocking.pylocking.pyinode.pynode.pyiobservers.pyobservers.pyiontosim.pyontosim.pyipy.typedrng.pyrng.pyisecure_config.pyselector.pyselector.pyisense.pysense.pyistructural.pystructural.pyitokens.pytokens.pyitrace.pytrace.pyitypes.pytypes.pyiunits.pyunits.pyi
tetrad_evaluator.py
.pre-commit-config.yaml.semgrep.yaml.zenodo.jsonARCHITECTURE.mdbandit.yamlCHANGELOG.mdCITATION.cffCONTRIBUTING.mdEMERGENT_CANON_AUDIT.mdEMERGENT_DERIVATION_PLAN.mdLICENSE.mdMakefileMANIFEST.inpyproject.tomlpyrightconfig.jsonPYTORCH_CUDA_INTEGRATION.mdREADME.mdSECURITY.mdTESTING.mdTNFR_Website_Content_Brief.md
FILE: src/tnfr/dynamics/advanced_fft_arithmetic.py

advanced_fft_arithmetic.py

TNFR Advanced FFT Arithmetic Engine

This module implements advanced FFT arithmetic operations that emerge naturally from the nodal equation ∂EPI/∂t = νf · ΔNFR(t) when viewed in spectral domain.

Mathematical Foundation: The Graph Fourier Transform reveals that TNFR dynamics have natural spectral structure:

  • EPI signals live in graph spectral domain
  • ΔNFR operations are convolutions in spectral space
  • νf modulation becomes multiplication in frequency domain
  • Multi-scale coupling creates harmonic relationships

Advanced Operations:

  1. Spectral Convolution: Fast ΔNFR computation via FFT
  2. Harmonic Analysis: Multi-scale resonance detection
  3. Spectral Filtering: Noise reduction and mode selection
  4. Phase-Locked Loops: Automatic phase synchronization
  5. Adaptive Windowing: Time-frequency analysis of EPI evolution
  6. Cross-Spectral Analysis: Multi-graph coherence measurement

Performance:

  • O(N log N) complexity for most operations
  • GPU acceleration via JAX/PyTorch backends
  • Automatic precision management
  • Cache-aware spectral decomposition reuse

Status: CANONICAL SPECTRAL ARITHMETIC ENGINE

Source Code

python
"""
TNFR Advanced FFT Arithmetic Engine

This module implements advanced FFT arithmetic operations that emerge naturally from
the nodal equation ∂EPI/∂t = νf · ΔNFR(t) when viewed in spectral domain.

Mathematical Foundation:
The Graph Fourier Transform reveals that TNFR dynamics have natural spectral structure:
- EPI signals live in graph spectral domain
- ΔNFR operations are convolutions in spectral space
- νf modulation becomes multiplication in frequency domain
- Multi-scale coupling creates harmonic relationships

Advanced Operations:
1. **Spectral Convolution**: Fast ΔNFR computation via FFT
2. **Harmonic Analysis**: Multi-scale resonance detection
3. **Spectral Filtering**: Noise reduction and mode selection
4. **Phase-Locked Loops**: Automatic phase synchronization
5. **Adaptive Windowing**: Time-frequency analysis of EPI evolution
6. **Cross-Spectral Analysis**: Multi-graph coherence measurement

Performance:
- O(N log N) complexity for most operations
- GPU acceleration via JAX/PyTorch backends
- Automatic precision management
- Cache-aware spectral decomposition reuse

Status: CANONICAL SPECTRAL ARITHMETIC ENGINE
"""

import time
from dataclasses import dataclass, field
from enum import Enum
from typing import Any

from ..alias import get_attr
from ..constants.aliases import ALIAS_VF
from ..errors import TNFRValueError
from ..errors.contextual import NetworkConfigError, TNFRUserError
from ..mathematics.unified_numerical import np

try:
    import networkx as nx

    HAS_NETWORKX = True
except ImportError:
    HAS_NETWORKX = False
    nx = None

# Import mathematical backends
try:
    from ..mathematics.backend import get_backend

    HAS_MATH_BACKENDS = True
except ImportError:
    HAS_MATH_BACKENDS = False

# Operational engine-tuning knobs (not TNFR physics) → tnfr.constants.operational
from ..constants.operational import (
    FFT_ARITHMETIC_IMPORTANCE_CANONICAL,
    FFT_BANDWIDTH_CANONICAL,
    FFT_COHERENT_THRESHOLD_CANONICAL,
    FFT_HIGH_CUTOFF_CANONICAL,
    FFT_LOW_CUTOFF_CANONICAL,
)

# Import spectral analysis
try:
    from ..mathematics.spectral import get_laplacian_spectrum, gft, igft

    HAS_SPECTRAL = True
except ImportError:
    HAS_SPECTRAL = False

# Import unified cache
try:
    from .multi_modal_cache import CacheEntryType, get_unified_cache

    HAS_UNIFIED_CACHE = True
except ImportError:
    HAS_UNIFIED_CACHE = False

# FFT cache coordinator
try:
    from .fft_cache_coordinator import FFTCacheCoordinator, get_fft_cache_coordinator

    HAS_FFT_CACHE = True
except ImportError:
    HAS_FFT_CACHE = False
    FFTCacheCoordinator = None  # type: ignore

try:
    from .fft_backend import FFTBackendCapabilities
except ImportError:  # pragma: no cover - circular import guard during bootstrap
    FFTBackendCapabilities = None  # type: ignore


class SpectralOperation(Enum):
    """Types of spectral operations."""

    CONVOLUTION = "convolution"  # Spectral convolution (fast ΔNFR)
    CORRELATION = "correlation"  # Cross-correlation analysis
    FILTERING = "filtering"  # Spectral filtering
    WINDOWING = "windowing"  # Time-frequency windowing
    HARMONIC_ANALYSIS = "harmonic_analysis"  # Multi-scale harmonics
    PHASE_LOCKING = "phase_locking"  # Phase synchronization
    COHERENCE_ANALYSIS = "coherence_analysis"  # Cross-spectral coherence


@dataclass
class SpectralState:
    """State in spectral domain."""

    eigenvalues: np.ndarray
    eigenvectors: np.ndarray
    spectral_coeffs: np.ndarray
    frequencies: np.ndarray
    amplitudes: np.ndarray
    phases: np.ndarray
    coherence_length: float = 0.0
    dominant_modes: np.ndarray = field(default_factory=lambda: np.array([]))


@dataclass
class FFTArithmeticResult:
    """Result of FFT arithmetic operation."""

    operation: SpectralOperation
    input_shape: tuple[int, ...]
    output_data: Any
    spectral_state: SpectralState | None = None
    execution_time: float = 0.0
    fft_operations: int = 0
    cache_hits: int = 0
    backend_used: str = "numpy"
    accuracy_metrics: dict[str, float] = field(default_factory=dict)


class TNFRAdvancedFFTEngine:
    """
    Advanced FFT arithmetic engine for TNFR computations.

    This engine leverages the spectral structure of the nodal equation to
    provide O(N log N) arithmetic operations on graph signals.
    """

    def __init__(
        self,
        default_backend: str = "numpy",
        precision: str = "float64",
        cache_coordinator: FFTCacheCoordinator | None = None,
    ):
        self.default_backend = default_backend
        self.precision = precision
        self.cache_coordinator = (
            cache_coordinator
            if cache_coordinator is not None
            else (get_fft_cache_coordinator() if HAS_FFT_CACHE else None)
        )
        self.backend_name = f"{self.__class__.__module__}.{self.__class__.__name__}"

        # Initialize mathematical backend
        if HAS_MATH_BACKENDS:
            self.backend = get_backend(default_backend)
        else:
            self.backend = None

        # Performance tracking
        self.total_operations = 0
        self.total_fft_ops = 0
        self.cache_hits = 0

        # Spectral cache for eigendecompositions (fallback when coordinator unavailable)
        self._spectral_cache = {} if self.cache_coordinator is None else None

        # Precomputed windows for time-frequency analysis
        self._window_cache = {}

    def get_capabilities(self) -> FFTBackendCapabilities:
        """Return capability metadata for planning purposes."""

        if FFTBackendCapabilities is None:  # pragma: no cover - during import cycle
            raise TNFRUserError(
                message="FFTBackendCapabilities unavailable",
                suggestion="Check import cycles or installation",
                context={"module": "advanced_fft_arithmetic"},
            )

        extra = {"default_backend": self.default_backend}
        if self.cache_coordinator is None:
            extra["cache_strategy"] = "local"
        else:
            extra["cache_strategy"] = "coordinated"

        return FFTBackendCapabilities(
            backend_name=self.backend_name,
            max_nodes=None,
            precision=self.precision,
            supports_distributed=False,
            extra=extra,
        )

    def _calculate_attenuation_db(self, filter_response: np.ndarray) -> float:
        """Calculate filter attenuation in dB safely."""
        if len(filter_response) == 0:
            return 0.0

        positive_vals = filter_response[filter_response > 0]
        if len(positive_vals) == 0:
            return -np.inf  # Complete attenuation

        max_positive = np.max(positive_vals)
        max_overall = np.max(filter_response)

        if max_overall <= 0:
            return -np.inf  # Complete attenuation

        if max_positive == max_overall:
            return 0.0  # No attenuation

        return -20 * np.log10(max_positive / max_overall)

    def get_spectral_state(
        self, G: Any, force_recompute: bool = False
    ) -> SpectralState:
        """
        Get spectral decomposition of graph.

        This is the fundamental operation that enables all FFT arithmetic.
        """
        if not HAS_NETWORKX or G is None:
            raise NetworkConfigError(
                parameter="graph",
                value=G,
                reason="Graph required for spectral analysis",
            )

        spectral_basis = None

        if self.cache_coordinator is not None:
            spectral_basis = self.cache_coordinator.get_spectral_basis(
                G, force_recompute=force_recompute
            )
            eigenvalues = spectral_basis.eigenvalues
            eigenvectors = spectral_basis.eigenvectors
        else:
            graph_id = id(G)
            if (
                not force_recompute
                and self._spectral_cache is not None
                and graph_id in self._spectral_cache
            ):
                return self._spectral_cache[graph_id]

            if not HAS_SPECTRAL:
                raise TNFRUserError(
                    message="Spectral analysis not available",
                    suggestion="Install spectral dependencies",
                    context={"has_spectral": HAS_SPECTRAL},
                )

            if HAS_UNIFIED_CACHE:
                cache = get_unified_cache()
                eigenvalues, eigenvectors = cache.get(
                    CacheEntryType.SPECTRAL_DECOMPOSITION,
                    G,
                    computation_func=lambda: get_laplacian_spectrum(G),
                    mathematical_importance=FFT_ARITHMETIC_IMPORTANCE_CANONICAL,  # π ≈ 3.1416 → canonical
                )
            else:
                eigenvalues, eigenvectors = get_laplacian_spectrum(G)

        # Extract current signal from nodes
        signal = np.array([G.nodes[node].get("EPI", 0.0) for node in G.nodes()])

        # Compute spectral coefficients
        spectral_coeffs = gft(signal, eigenvectors)

        # Analyze spectral properties
        amplitudes = np.abs(spectral_coeffs)
        phases = np.angle(spectral_coeffs)

        # Find dominant modes (largest amplitude coefficients)
        dominant_indices = np.argsort(amplitudes)[-5:]  # Top 5 modes

        # Estimate coherence length from spectral decay
        coherence_length = self._estimate_coherence_length(eigenvalues, amplitudes)

        # Create spectral state
        spectral_state = SpectralState(
            eigenvalues=eigenvalues,
            eigenvectors=eigenvectors,
            spectral_coeffs=spectral_coeffs,
            frequencies=eigenvalues,  # In graph setting, eigenvalues are frequencies
            amplitudes=amplitudes,
            phases=phases,
            coherence_length=coherence_length,
            dominant_modes=dominant_indices,
        )

        # Cache the result locally when coordinator absent
        if self._spectral_cache is not None:
            graph_id = id(G)
            self._spectral_cache[graph_id] = spectral_state

        if self.cache_coordinator is not None:
            self.cache_coordinator.register_spectral_state(G, spectral_state)

        return spectral_state

    def spectral_convolution(
        self,
        G: Any,
        signal1: np.ndarray | None = None,
        signal2: np.ndarray | None = None,
        operation: str = "multiply",
    ) -> FFTArithmeticResult:
        """
        Perform spectral domain convolution.

        This enables fast computation of ΔNFR and other nodal operations.
        """
        start_time = time.perf_counter()

        # Get spectral state
        spectral_state = self.get_spectral_state(G)

        # Extract signals from graph if not provided
        if signal1 is None:
            signal1 = np.array([G.nodes[node].get("EPI", 0.0) for node in G.nodes()])
        if signal2 is None:
            signal2 = np.array(
                [get_attr(G.nodes[node], ALIAS_VF, 1.0) for node in G.nodes()]
            )

        # Use GPU backend for large signals when available
        if HAS_MATH_BACKENDS and len(signal1) > 100:
            try:
                backend = get_backend()
                if backend.supports_autodiff:
                    # Convert to backend tensors
                    s1_tensor = backend.as_array(signal1)
                    s2_tensor = backend.as_array(signal2)
                    U_tensor = backend.as_array(spectral_state.eigenvectors)

                    # GPU GFT: spectral = U^T @ signal
                    spectral1_tensor = backend.matmul(
                        backend.conjugate_transpose(U_tensor), s1_tensor
                    )
                    spectral2_tensor = backend.matmul(
                        backend.conjugate_transpose(U_tensor), s2_tensor
                    )

                    # Perform operation in spectral domain on GPU
                    if operation == "multiply":
                        result_spectral_tensor = spectral1_tensor * spectral2_tensor
                    elif operation == "add":
                        result_spectral_tensor = spectral1_tensor + spectral2_tensor
                    elif operation == "convolve":
                        result_spectral_tensor = spectral1_tensor * spectral2_tensor
                    else:
                        raise TNFRUserError(
                            message=f"Unknown spectral operation: {operation}",
                            suggestion="Use 'multiply', 'add', or 'convolve'",
                            context={"operation": operation},
                        )

                    # GPU IGFT: result = U @ spectral
                    result_spatial_tensor = backend.matmul(
                        U_tensor, result_spectral_tensor
                    )
                    result_spatial = backend.to_numpy(result_spatial_tensor)

                else:
                    raise TNFRUserError(
                        message="Backend doesn't support autodiff",
                        suggestion="Use a backend with autodiff support (e.g., JAX, PyTorch)",
                        context={"backend": self.backend_name},
                    )
            except Exception:
                # Fallback to CPU implementation
                spectral1 = gft(signal1, spectral_state.eigenvectors)
                spectral2 = gft(signal2, spectral_state.eigenvectors)

                if operation == "multiply":
                    result_spectral = spectral1 * spectral2
                elif operation == "add":
                    result_spectral = spectral1 + spectral2
                elif operation == "convolve":
                    result_spectral = spectral1 * spectral2
                else:
                    raise TNFRUserError(
                        message=f"Unknown spectral operation: {operation}",
                        suggestion="Use 'multiply', 'add', or 'convolve'",
                        context={"operation": operation},
                    )

                result_spatial = igft(result_spectral, spectral_state.eigenvectors)
        else:
            # CPU implementation for small signals or when GPU unavailable
            spectral1 = gft(signal1, spectral_state.eigenvectors)
            spectral2 = gft(signal2, spectral_state.eigenvectors)

            if operation == "multiply":
                result_spectral = spectral1 * spectral2
            elif operation == "add":
                result_spectral = spectral1 + spectral2
            elif operation == "convolve":
                result_spectral = spectral1 * spectral2
            else:
                msg = f"Unknown operation: {operation}"
                raise TNFRValueError(
                    msg,
                    context={
                        "operation": operation,
                        "allowed": ["multiply", "add", "convolve"],
                    },
                    suggestion="Use 'multiply', 'add', or 'convolve'.",
                )

            result_spatial = igft(result_spectral, spectral_state.eigenvectors)

        execution_time = time.perf_counter() - start_time

        # Update statistics
        self.total_operations += 1
        self.total_fft_ops += 2  # Forward + inverse transform

        # Determine actual backend used
        actual_backend = self.default_backend
        if HAS_MATH_BACKENDS and len(signal1) > 100:
            try:
                backend = get_backend()
                actual_backend = f"{self.default_backend}({backend.name})"
            except Exception:
                pass

        result = FFTArithmeticResult(
            operation=SpectralOperation.CONVOLUTION,
            input_shape=signal1.shape,
            output_data=result_spatial,
            spectral_state=spectral_state,
            execution_time=execution_time,
            fft_operations=2,
            backend_used=actual_backend,
        )

        if self.cache_coordinator is not None:
            self.cache_coordinator.register_fft_result(
                G, result, metadata={"mode": operation}
            )

        return result

    def harmonic_analysis(
        self, G: Any, num_harmonics: int = 5, window_size: int | None = None
    ) -> FFTArithmeticResult:
        """
        Perform multi-scale harmonic analysis.

        Identifies resonant modes and harmonic relationships in EPI evolution.
        """
        start_time = time.perf_counter()

        # Get spectral state
        spectral_state = self.get_spectral_state(G)

        # Extract EPI signal
        epi_signal = np.array([G.nodes[node].get("EPI", 0.0) for node in G.nodes()])

        # Identify dominant harmonics
        amplitudes = spectral_state.amplitudes
        frequencies = spectral_state.frequencies

        # Find peaks in amplitude spectrum
        harmonic_indices = np.argsort(amplitudes)[-num_harmonics:]
        harmonic_freqs = frequencies[harmonic_indices]
        harmonic_amps = amplitudes[harmonic_indices]

        # Analyze harmonic relationships
        fundamental_freq = harmonic_freqs[np.argmax(harmonic_amps)]

        harmonic_ratios = []
        for freq in harmonic_freqs:
            if fundamental_freq > 0:
                ratio = freq / fundamental_freq
                harmonic_ratios.append(ratio)
            else:
                harmonic_ratios.append(0.0)

        # Compute harmonic distortion
        total_harmonic_distortion = (
            np.sqrt(np.sum(harmonic_amps[1:] ** 2)) / harmonic_amps[0]
            if harmonic_amps[0] > 0
            else 0.0
        )

        execution_time = time.perf_counter() - start_time

        # Create result
        harmonic_data = {
            "fundamental_frequency": fundamental_freq,
            "harmonic_frequencies": harmonic_freqs,
            "harmonic_amplitudes": harmonic_amps,
            "harmonic_ratios": harmonic_ratios,
            "total_harmonic_distortion": total_harmonic_distortion,
            "dominant_mode_index": harmonic_indices[np.argmax(harmonic_amps)],
        }

        self.total_operations += 1

        return FFTArithmeticResult(
            operation=SpectralOperation.HARMONIC_ANALYSIS,
            input_shape=epi_signal.shape,
            output_data=harmonic_data,
            spectral_state=spectral_state,
            execution_time=execution_time,
            fft_operations=1,
            backend_used=self.default_backend,
        )

    def spectral_filtering(
        self,
        G: Any,
        filter_type: str = "lowpass",
        cutoff_frequency: float | None = None,
        filter_order: int = 4,
    ) -> FFTArithmeticResult:
        """
        Apply spectral filtering to graph signals.

        Enables noise reduction and mode selection in EPI evolution.
        """
        start_time = time.perf_counter()

        # Get spectral state
        spectral_state = self.get_spectral_state(G)

        # Determine cutoff frequency if not specified
        if cutoff_frequency is None:
            # Use median eigenvalue as default cutoff
            cutoff_frequency = np.median(spectral_state.eigenvalues)

        frequencies = spectral_state.eigenvalues

        def _build_filter() -> np.ndarray:
            return self._build_filter_response(
                frequencies, filter_type, float(cutoff_frequency), filter_order
            )

        if self.cache_coordinator is not None:
            filter_response = self.cache_coordinator.get_kernel(
                G,
                "spectral_filter",
                _build_filter,
                kernel_params={
                    "type": filter_type,
                    "cutoff": round(float(cutoff_frequency), 6),
                    "order": filter_order,
                },
            )
        else:
            filter_response = _build_filter()

        # Apply filter to current signal
        epi_signal = np.array([G.nodes[node].get("EPI", 0.0) for node in G.nodes()])
        spectral_coeffs = spectral_state.spectral_coeffs

        # Apply filter
        filtered_coeffs = spectral_coeffs * filter_response

        # Transform back to spatial domain
        filtered_signal = igft(filtered_coeffs, spectral_state.eigenvectors)

        execution_time = time.perf_counter() - start_time

        # Create filtered result
        filtered_data = {
            "original_signal": epi_signal,
            "filtered_signal": filtered_signal,
            "filter_response": filter_response,
            "cutoff_frequency": cutoff_frequency,
            "filter_type": filter_type,
            "attenuation_db": self._calculate_attenuation_db(filter_response),
        }

        self.total_operations += 1
        self.total_fft_ops += 1  # Inverse transform

        result = FFTArithmeticResult(
            operation=SpectralOperation.FILTERING,
            input_shape=epi_signal.shape,
            output_data=filtered_data,
            spectral_state=spectral_state,
            execution_time=execution_time,
            fft_operations=1,
            backend_used=self.default_backend,
        )

        if self.cache_coordinator is not None:
            self.cache_coordinator.register_fft_result(
                G, result, metadata={"filter_type": filter_type}
            )

        return result

    def _build_filter_response(
        self,
        frequencies: np.ndarray,
        filter_type: str,
        cutoff_frequency: float,
        filter_order: int,
    ) -> np.ndarray:
        """Construct smooth spectral filter responses."""

        response = np.ones_like(frequencies)
        safe_cutoff = max(cutoff_frequency, 1e-9)

        if filter_type == "lowpass":
            attenuation = np.maximum(frequencies - safe_cutoff, 0.0)
            response = np.exp(-attenuation * filter_order / safe_cutoff)
        elif filter_type == "highpass":
            attenuation = np.maximum(safe_cutoff - frequencies, 0.0)
            response = 1.0 - np.exp(-attenuation * filter_order / safe_cutoff)
        elif filter_type == "bandpass":
            low_cutoff = (
                safe_cutoff * FFT_LOW_CUTOFF_CANONICAL
            )  # = 0.34 (operational)
            high_cutoff = (
                safe_cutoff * FFT_HIGH_CUTOFF_CANONICAL
            )  # = 0.6 (operational)
            response = np.exp(
                -np.maximum(low_cutoff - frequencies, 0.0) * filter_order / safe_cutoff
            )
            response *= np.exp(
                -np.maximum(frequencies - high_cutoff, 0.0) * filter_order / safe_cutoff
            )
        elif filter_type == "notch":
            bandwidth = (
                safe_cutoff * FFT_BANDWIDTH_CANONICAL
            )  # = 0.1 (operational)
            distance = np.abs(frequencies - safe_cutoff)
            response = 1.0 - np.exp(
                -(bandwidth - distance).clip(min=0.0) * filter_order / safe_cutoff
            )
        else:
            raise TNFRUserError(
                message=f"Unknown filter type: {filter_type}",
                suggestion="Use 'lowpass', 'highpass', 'bandpass', or 'notch'",
                context={"filter_type": filter_type},
            )

        return np.clip(response, 0.0, 1.0)

    def cross_spectral_coherence(
        self, G1: Any, G2: Any, frequency_bands: int | None = 10
    ) -> FFTArithmeticResult:
        """
        Compute cross-spectral coherence between two graphs.

        Measures synchronization and coupling strength between TNFR networks.
        """
        start_time = time.perf_counter()

        # Get spectral states for both graphs
        spectral1 = self.get_spectral_state(G1)
        spectral2 = self.get_spectral_state(G2)

        # Ensure compatible dimensions
        min_size = min(len(spectral1.spectral_coeffs), len(spectral2.spectral_coeffs))
        coeffs1 = spectral1.spectral_coeffs[:min_size]
        coeffs2 = spectral2.spectral_coeffs[:min_size]
        freqs1 = spectral1.frequencies[:min_size]
        freqs2 = spectral2.frequencies[:min_size]

        # Compute cross-spectral density
        cross_spectrum = coeffs1 * np.conj(coeffs2)

        # Compute power spectra
        power1 = np.abs(coeffs1) ** 2
        power2 = np.abs(coeffs2) ** 2

        # Compute coherence function
        coherence = np.abs(cross_spectrum) ** 2 / (
            power1 * power2 + 1e-12
        )  # Avoid division by zero

        # Compute frequency-band coherence
        if frequency_bands:
            band_edges = np.linspace(
                0, np.max([np.max(freqs1), np.max(freqs2)]), frequency_bands + 1
            )
            band_coherence = []

            for i in range(frequency_bands):
                band_mask = (freqs1 >= band_edges[i]) & (freqs1 < band_edges[i + 1])
                if np.any(band_mask):
                    band_coh = np.mean(coherence[band_mask])
                    band_coherence.append(band_coh)
                else:
                    band_coherence.append(0.0)
        else:
            band_coherence = []

        # Compute overall coherence metrics
        mean_coherence = np.mean(coherence)
        max_coherence = np.max(coherence)
        coherent_bandwidth = np.sum(coherence > FFT_COHERENT_THRESHOLD_CANONICAL) / len(
            coherence
        )  # = 0.62 (operational; fraction above threshold)

        execution_time = time.perf_counter() - start_time

        # Create coherence result
        coherence_data = {
            "coherence_spectrum": coherence,
            "cross_spectrum": cross_spectrum,
            "frequencies": freqs1,  # Use first graph's frequencies
            "band_coherence": band_coherence,
            "mean_coherence": mean_coherence,
            "max_coherence": max_coherence,
            "coherent_bandwidth": coherent_bandwidth,
            "frequency_bands": frequency_bands,
        }

        self.total_operations += 1

        return FFTArithmeticResult(
            operation=SpectralOperation.COHERENCE_ANALYSIS,
            input_shape=(min_size,),
            output_data=coherence_data,
            execution_time=execution_time,
            fft_operations=0,  # No additional FFTs needed
            backend_used=self.default_backend,
        )

    def _estimate_coherence_length(
        self, eigenvalues: np.ndarray, amplitudes: np.ndarray
    ) -> float:
        """Estimate spatial coherence length from spectral decay."""
        # Find spectral centroid (weighted average frequency)
        total_power = np.sum(amplitudes**2)
        if total_power > 0:
            centroid = np.sum(eigenvalues * amplitudes**2) / total_power
        else:
            centroid = 0.0

        # Estimate coherence length as inverse of spectral centroid
        if centroid > 0:
            coherence_length = 1.0 / np.sqrt(centroid)
        else:
            coherence_length = float("inf")  # Infinite coherence

        return coherence_length

    def get_performance_stats(self) -> dict[str, Any]:
        """Get performance statistics."""
        return {
            "total_operations": self.total_operations,
            "total_fft_operations": self.total_fft_ops,
            "cache_hits": self.cache_hits,
            "cache_hit_rate": self.cache_hits / max(1, self.total_operations),
            "cached_spectra": len(self._spectral_cache),
            "backend": self.default_backend,
            "precision": self.precision,
            "spectral_analysis_available": HAS_SPECTRAL,
            "unified_cache_available": HAS_UNIFIED_CACHE,
        }

    def clear_cache(self) -> None:
        """Clear internal caches."""
        self._spectral_cache.clear()
        self._window_cache.clear()


# Factory functions
def create_fft_arithmetic_engine(**kwargs) -> TNFRAdvancedFFTEngine:
    """Create FFT arithmetic engine."""
    return TNFRAdvancedFFTEngine(**kwargs)


def fast_spectral_convolution(
    G: Any, signal1: np.ndarray, signal2: np.ndarray
) -> np.ndarray:
    """Convenience function for fast spectral convolution."""
    engine = create_fft_arithmetic_engine()
    result = engine.spectral_convolution(G, signal1, signal2, operation="multiply")
    return result.output_data


def analyze_graph_harmonics(G: Any, num_harmonics: int = 5) -> dict[str, Any]:
    """Convenience function for harmonic analysis."""
    engine = create_fft_arithmetic_engine()
    result = engine.harmonic_analysis(G, num_harmonics)
    return result.output_data


def measure_graph_coherence(G1: Any, G2: Any) -> float:
    """Convenience function for measuring cross-graph coherence."""
    engine = create_fft_arithmetic_engine()
    result = engine.cross_spectral_coherence(G1, G2)
    return result.output_data["mean_coherence"]