Gradient of $f(x) = a \oslash (b + a \odot x)$ w.r.t. $x \in \mathbb{R}^n$

How to compute the gradient of

$$f(x) := a \oslash (a \odot x + b)$$,

with respect to $$x \in \mathbb{R}^n$$, where $$\oslash$$ is element-wise division, $$\odot$$ is element-wise multiplication, and $$a , b \in \mathbb{R}^n$$.

The gradient should be a matrix, but I am not sure how to approach it.

• You have a vector $(f^1(x_1,\cdots, x_n),\cdots , f^n(x_1,\cdots, x_n))$ which depends on $(x_1,\cdots,x_n)$ and you want to calculate $\frac{\partial f^i}{\partial x_j}(p_1,\cdots,p_n)$ for all $i,j$. – Saucy O'Path Apr 24 at 21:06

Let \eqalign{ v &= a \odot x + b\\ dv &= a \odot dx }
Then, we can find the differential and gradient using the quotient rule: \eqalign{ f &= a \oslash v\\ df &= (da \odot v - a \odot dv)\oslash(v\odot v) \\ &= -a \odot (a \odot dx) \oslash (v \odot v) \\ &= (-a\odot a \oslash (v\odot v)) \odot dx \\ &= (-f\odot f) \odot dx\\ &= -\operatorname{Diag}(f \odot f) dx }
$$\frac{\partial f}{\partial x} = -\operatorname{Diag}(f \odot f)$$
$$a \odot b =\operatorname{Diag}(a)b = Ab$$