Elasticity of substitution in Jehle and Reny Advanced Micro (3rd ed) exercise 3.8

Letting $f_i(\mathbf{x})=\partial f(\mathbf{x})/\partial x_i$, ($\mathbf{x}$ is a vector, a commodity bundle, and $x_i$ is a scalar, commodity $i$ in the bundle) show that,

$\sigma_{ij}(\mathbf{x})\equiv -\frac{x_if_i(\mathbf{x})+x_jf_j(\mathbf{x})}{f^2_j(\mathbf{x})f_{ii}(\mathbf{x})+2f_i(\mathbf{x})f_j(\mathbf{x})f_{ij}(\mathbf{x})+f_i^2(\mathbf{x})f_{jj}(\mathbf{x})}\frac{f_i(\mathbf{x})f_j(\mathbf{x})}{x_ix_j}$

Then using the above formula, show that $\sigma_{ij}(\mathbf{x})\geq0$ whenever $f$ is increasing and concave.

PS: I know $\sigma_{ij}$ can be written as

$\sigma_{ij}=-\frac{d (x_i/x_j)}{x_i/x_j} \frac{f_i(\mathbf{x})/f_j(\mathbf{x})}{d (f_i(\mathbf{x})/f_j(\mathbf{x}))}$

How can we derive the result from this known fact? Thank you.