Read the equation
The comment describes adding dt times the weighted state sum. The body actually uses a_next=a+dt(Ca−a), which is relaxation toward the row-weighted average. For nonnegative row-stochastic C and dt in [0,1], this preserves the convex range of the input activations.
Terms & definitions
| Term | Meaning in this source |
|---|---|
| a | Layer activation vector |
| C | Row-normalized coupling matrix |
| dt | Mixing fraction |
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
}
}
}
/**
* apply_coupling - Update activations based on coupling
*
* a_i(t+1) = a_i(t) + dt * sum_j(C[i][j] * a_j(t))
*/
void apply_coupling(std::array<double, N>& activations, double dt = 0.01) const {
std::array<double, N> new_activations;
for (size_t i = 0; i < N; ++i) {
double sum = 0.0;
for (size_t j = 0; j < N; ++j) {
sum += coupling[i][j] * activations[j];
}
new_activations[i] = activations[i] + dt * (sum - activations[i]);Exact original notation
a_i(t+1) = a_i(t) + dt * sum_j(C[i][j] * a_j(t))