I was writing problems about the bisection method and decided to use the Maple routine Student[NumericalAnalysis][Bisection]. The problem I wrote generates a cubic with all three roots in a somewhat random interval. Students are then asked to find a root to a given accuracy using the bisection method. If one does not hit a root, the Student[NumericalAnalysis][Bisection] routine gives the desired answer.
A problem arises when the bisection algorithm generates a midpoint that is a zero of the cubic. The standard bisection algorithm stops at this point. When Student[NumericalAnalysis][Bisection] hits a zero, it continues on as if nothing unusual happened. Attached is a Maple worksheet with a demonstration of this feature.
I am wondering if this behavior is appropriate since it does not follow the standard requirement of bisection that the function values at the endpoints of the interval must have opposite signs?