# tensorplay.autograd.forward_ad API Source: https://www.tensorplay.cn/docs/api/tensorplay.autograd.forward_ad.html ## Functions 4 [#](#api-tensorplay.autograd.forward_ad.enter_dual_level) ### enter_dual_level function[Full reference ↗](/docs/generated/tensorplay.autograd.forward_ad.enter_dual_level.html) ```python tensorplay.autograd.forward_ad.enter_dual_level() → int ``` Enters a new forward grad level and returns its index. This level can be used to make and unpack dual Tensors to compute forward gradients. Levels cannot nest: entering while another level is active raises, so all forward AD computation happens inside one level. [#](#api-tensorplay.autograd.forward_ad.exit_dual_level) ### exit_dual_level function[Full reference ↗](/docs/generated/tensorplay.autograd.forward_ad.exit_dual_level.html) ```python tensorplay.autograd.forward_ad.exit_dual_level(*, level: int | None = None) → None ``` Exits a forward grad level. This deletes all the tangents associated with this level. Only exiting the most recently entered level is allowed. [#](#api-tensorplay.autograd.forward_ad.make_dual) ### make_dual function[Full reference ↗](/docs/generated/tensorplay.autograd.forward_ad.make_dual.html) ```python tensorplay.autograd.forward_ad.make_dual(tensor: Tensor, tangent: Tensor, *, level: int | None = None) → Tensor ``` Associates a tensor value with its tangent to create a “dual tensor”. The result is a new tensor aliased to tensor with tangent attached as its forward gradient. The tangent can be recovered with [unpack_dual()](/docs/generated/tensorplay.autograd.forward_ad.unpack_dual.html#tensorplay.autograd.forward_ad.unpack_dual). Given a function f whose jacobian is J, this computes the Jacobian-vector product (jvp) between J and a given vector v: ``` >>> # xdoctest: +SKIP("Undefined variables") >>> with dual_level(): ... inp = make_dual(x, v) ... out = f(inp) ... y, jvp = unpack_dual(out) ``` [#](#api-tensorplay.autograd.forward_ad.unpack_dual) ### unpack_dual function[Full reference ↗](/docs/generated/tensorplay.autograd.forward_ad.unpack_dual.html) ```python tensorplay.autograd.forward_ad.unpack_dual(tensor: Tensor, *, level: int | None = None) → UnpackedDualTensor ``` Unpacks a dual tensor into its primal value and forward gradient. Returns (primal, tangent) where primal is a view of tensor’s primal and tangent is tensor’s tangent (None when tensor carries no tangent at level).