A sure sign of an inexperienced programmer in numerical computing is when they check for equality to zero of a floating-point number as
if (x == 0) ...
instead of something like
if (abs(x) < eps) ...
where eps is a suitably defined small number.
if (x == 0) ...
instead of something like
if (abs(x) < eps) ...
where eps is a suitably defined small number.
C <- alpha*AB + beta*C
If beta is exactly 0, you don’t have to read C, just write to it.The key here is that beta is likely to be an exact value that is entered as a constant, and detecting it allows for a worthwhile optimization.