add the dual KL method
Merge pull request #2356 from yorkerlin/develop

add the dual KL method