It seems that the reason is that when we autogenerate wrapers for some ATen functions here 4
we are generating a single 6 torch::normal definition and not all it’s overloaded defs.
And this seems to happen because of this line 4 which excludes from the variable_factories.h all functions that don’t have TensorOptions as an argument, thus excluding the other signatures.
Adding the following to my code fixes the compiler error, but i am pretty sure it’s wrong  when in autograd contexts:
namespace torch {

torch::Tensor normal (const torch::Tensor &mean, double std = 1, torch::Generator *generator = nullptr) {
  return at::normal(mean, std, generator);  
}

torch::Tensor normal (double mean, const torch::Tensor &std, torch::Generator *generator = nullptr) {
  return at::normal(mean, std, generator);  
}

torch::Tensor normal (const torch::Tensor &mean, const torch::Tensor &std, torch::Generator *generator = nullptr) {
  return at::normal(mean, std, generator);  
}

} // namespace torch