Thank you for the quick reply, Julien,
Your answer is indeed helpful. I see that your bracketMinimum function follows the algorithm described in numerical recipes, page 352, for "look outward" bracketing. That is, it finds a third minimal point while expanding the initial interval provided to it, [a,b].
Just to make sure I follow your second suggestion - in the case of frequency parameter, which is constrained to be within the bounds [0,1], whenever the assigned value is greater than 1, this solution would result in repeated computation of the function at value 1.
I saw another bracketing option in the book, which conducts "look inward" bracketing, that is, finds the third point within the interval [a,b] without modifying it. Could a bracketing achieved in this manner yield a more efficient local search with Brent, when using a constrained parameter? I have written an implementation of this bracketing and I could add it to OneDimensionOptimizationTools class, if you wish to add it to Bio++. Please let me know and I will pull request if needed.
If you think there is a better approach that "inward bracketing", I would love to hear your input.
Many thanks again!
Keren