Read the equation
This relation defines BCM rule: ΔW in the source section “HEBBIAN LEARNING · BCM rule: ΔW”. It specifies the displayed relationship between the named quantities or parameters. Its interpretation depends on the source’s stated variables and conditions; this record does not assign an unprovided physical or cognitive meaning to them.
Terms & definitions
The recovered passage does not supply a separate symbol table. Read the source context for the notation used in this version; familiar letters may carry different meanings in other builds.
How it works
Read BCM rule: ΔW as the quantity being defined or updated by this relation.
Substitute the source-defined variables or recorded values and follow the displayed arithmetic and indexing exactly.
Use this version’s variable definitions and update order. The same symbol may be assigned a different meaning in another build.
Assumptions & limits
This source expression was recovered from the pinned code revision. Its presence does not establish that the associated program was built, run, or scientifically validated.
Original context
Read the surrounding source passage
W[i][j] *= (1.0f - decay);
// Clamp
W[i][j] = std::max(-1.0f, std::min(1.0f, W[i][j]));
}
}
}
// BCM rule: ΔW = η·y·(y - θ)·x where θ is sliding threshold
void update_bcm(const float* pre, const float* post, float* theta) {
for (size_t i = 0; i < DIM; ++i) {
// Update threshold (exponential moving average of y²)
theta[i] = 0.99f * theta[i] + 0.01f * post[i] * post[i];
for (size_t j = 0; j < DIM; ++j) {
float delta = lr * post[i] * (post[i] - theta[i]) * pre[j];
W[i][j] += delta;
W[i][j] *= (1.0f - decay);
W[i][j] = std::max(-1.0f, std::min(1.0f, W[i][j]));Exact original notation
BCM rule: ΔW = η·y·(y - θ)·x where θ is sliding threshold