I have added 6 files in support for this :
ql/methods/lattices/generalizedcrr.hpp/cpp : Implement the Cox-Ross-Rubinstein equal jumps binomial tree, for non-constant interest rates ( per John Hull ).
ql/methods/lattices/generalizedbsmlattice.hpp : Implements the appropriate discount factors at each time step in the binomial tree ( based on the forward rate at each step )
ql/pricingengines/vanilla/generalizedbinomialengine.hpp : Implement compatibility with the GeneralizedBlackScholesProcess and the above changes. Also, re-implement the greeks.
examples/equityoption.cpp : Added code to test the GeneralizedBinomialEngine/CRR/Lattice
In addition I have made the following changes to the exisiting files :
1. ql/pricingengines/vanilla/discretizedvanillaoption.hpp -- replaced the inclusion of bsmlattice.hpp with stochasticprocess.hpp. ( former is not needed and the discretizedvanillaoption need not be constrained to the standard bsmlattice )
2. ql/methods/lattices/binomialtree.hpp : Removed the inclusion of dividendschedule.hpp -- not needed. Additionally, made two methods in the EqualJumpsBinomialTree virtual - functions "underlying" and "probability" -- needed to support other equal jumps tree implementations.