def build_kernel(num_integration_steps, step_size, inverse_mass_matrix): momentum_generator, kinetic_energy = gaussian_euclidean_metric( inverse_mass_matrix, ) integrator_step = self.integrator(potential, kinetic_energy) proposal = hmc_proposal(integrator_step, step_size, num_integration_steps) kernel = hmc_kernel(proposal, momentum_generator, kinetic_energy, potential) return kernel
def kernel_generator(step_size, inv_mass_matrix): momentum_generator, kinetic_energy = gaussian_euclidean_metric( inv_mass_matrix) integrator_step = velocity_verlet(potential_fn, kinetic_energy) proposal = hmc_proposal(integrator_step, step_size, 1) kernel = hmc_kernel(proposal, momentum_generator, kinetic_energy, potential_fn) return kernel