I'm optimizing a function of the form

$$ \sum \frac{ \|\mathbf{f_i}(x)\|^2 }{ g_i(x)^2 + h_i(x)^2 } $$

where $x$ is a real vector, $\mathbf{f}(x)$ is a real vector, and $g(x)$ is a scalar. My first thought is to use something from the Gauss-Newton family, in which I would write

$$ \mathbf{c_i}(x_i) = \frac{ \mathbf{f_i}(x) }{ \sqrt{g_i(x)^2 + h_i(x)^2} } $$

$$ C(x) = \sum \|\mathbf{c_i}(x)\|^2 $$

and from there I would take gradient steps, which would be like approximating each $c_i$ as locally linear. But while this would be valid, I'm wondering if I could do better by exploiting the known structure of the cost function. In particular, I'm wondering if I can use the gradients of $\mathbf{f}$, $g$, and $h$ directly. Particularly if the curvature of $f$, $g$, and $h$ is small compared to the curvature of the square root function, it would surely be advantageous to take account of the gradients of $f$, $g$, and $h$ directly. Can anyone point me in the right direction?