Dph upper bound optimization

Have improved the upper bound on DPH by making use of differential calculus. Because I created the branch from the master branch after pulling from origin, some other commits I had made earlier are also a part of this PR. Please ignore them.  Only the last commit titled "Improved upper bound for DPH and documentation is of use."