Read the equation
The code builds a symmetric ring with position-dependent edge weights and a modulated diagonal, then reports this independent trigonometric expression as its eigenvalues. Such a varying-weight matrix is not a uniform circulant ring. The independently reconstructed default matrix disagrees by about 0.03454309 in maximum sorted eigenvalue error and fails the trace-sum comparison.
Terms & definitions
| Term | Meaning in this source |
|---|---|
| beta_0 | Base edge coefficient |
| gamma | Diagonal coefficient |
| F | Two-cosine modulation |
How it works
Read the definition from its right-hand expression to the quantity on the left. Its surrounding source records the intended input, state, or parameter context. Where the source leaves an operation unspecified, this page preserves that gap.
Assumptions & limits
Source recovery establishes that the expression appears in this record. Its mathematical validity, implementation behavior, and interpretation must be assessed separately. See the linked source and research notes for the checks available for this version.
Original context
Read the surrounding source passage
// F function for 10.6 modulation
static double F_function(int n) {
return std::cos(2.0 * M_PI * n / BASE_PAIRS_PER_TURN) +
0.5 * std::cos(4.0 * M_PI * n / BASE_PAIRS_PER_TURN);
}
// Eigenvalues (Section 11.2):
// λ_inter(n) = 2β₀·sin(πn/10.6)·cos(πn/8) + γ·F(n, 10.6)
double eigenvalue(int n) const {
double sin_term = std::sin(M_PI * n / BASE_PAIRS_PER_TURN);
double cos_term = std::cos(M_PI * n / 8.0);
return 2.0 * params_.beta_0 * sin_term * cos_term +
params_.gamma * F_function(n);
}
std::array<double, NUM_STRANDS> all_eigenvalues() const {
std::array<double, NUM_STRANDS> eigs;
for (int n = 0; n < NUM_STRANDS; ++n) {Exact original notation
λ_inter(n) = 2β₀·sin(πn/10.6)·cos(πn/8) + γ·F(n, 10.6)