pub fn value_and_grad<const IN: usize, const OUT: usize, F>( func: F ) -> ValueAndGradFunc<IN, OUT, F>where F: Function<IN, OUT> + Clone + 'static,