It compiles just fine on VC++ 6.0, the stated target compiler. Perhaps you misread wikipedia, or just dont understand what monotonic means.
From wiktionary.org -
- of or using the Greek system of diacritics which discards the breathings and employs a single accent to indicate stress.
- (mathematics) said of a function that either never decreases or never increases as its independent variable increases.
From Wikipedia.org -
In general, a sigmoid function is real-valued and differentiable, having either a non-negative or non-positive first derivative and exactly one inflection point.
So, while I suppose a sigmoid is monotonic ( I may have mispoken earlier), not all monotonic functions are sigmoids. I think that citizens formula may produce bad results for negative values of X lets see -5/sqrt(25+1)? Nope, its a negative number that decreases as the variable decreases. It approaches 1.0 for large values of X. For a< b < c in the positive domain it satsifies f(a) < f(b) < f(c) and sa > sb > sc. It also satisfies the negative domain equivelant. So it qualifies. If he implements it in assembly it will not produce errors, although depending on the compiler, it may produce errors for values of X greater than sqrt(1.7E+308) when compiled as is.