update the base class
add the header file
add the basic cpp file
add the set_distribution method
add the precompute  method
add the get_variational_expection  method
add the get_variational_first_derivative  method
complete the get_variational_first_derivative  method