template <class T, size_t N, class Function>
auto OptimizeWithScaledConjugateGradientMethod(const Function& f, const Array<T, N>& w0, const T grad_norm_threshold, size_t max_iters) -> Array<T, N>