[null,null,["Last updated 2024-04-26 UTC."],[],[],null,["# tf_agents.bandits.policies.linalg.simplified_woodbury_update\n\n\u003cbr /\u003e\n\n|---------------------------------------------------------------------------------------------------------------------------|\n| [View source on GitHub](https://github.com/tensorflow/agents/blob/v0.19.0/tf_agents/bandits/policies/linalg.py#L130-L160) |\n\nReturns `w` such that `inverse(a + u.T.dot(u)) = a_inv + w`. \n\n tf_agents.bandits.policies.linalg.simplified_woodbury_update(\n a_inv: ../../../../tf_agents/typing/types/Float,\n u: ../../../../tf_agents/typing/types/Float\n ) -\u003e ../../../../tf_agents/typing/types/Float\n\nMakes use of the Woodbury matrix identity. See\n\u003chttps://en.wikipedia.org/wiki/Woodbury_matrix_identity\u003e\n| **Note:** This implementation assumes that a_inv is symmetric. Since it's too expensive to check symmetricity, the function silently outputs a wrong answer in case `a` is not symmetric.\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Args ---- ||\n|---------|-----------------------------------------------------|\n| `a_inv` | an invertible SYMMETRIC `Tensor` of shape `[m, m]`. |\n| `u` | a `Tensor` of shape `[n, m]`. |\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Returns ------- ||\n|---|---|\n| A `Tensor` `w` of shape `[m, m]` such that `inverse(a + u.T.dot(u)) = a_inv + w`. ||\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Raises ------ ||\n|--------------|-----------------------------------------------------------------------|\n| `ValueError` | if `a_inv` is not square or `a_inv` and `u` have incompatible shapes. |\n\n\u003cbr /\u003e"]]