warp.atomic\_exch ================= .. function:: warp._src.lang.atomic_exch(arr: Array[Any], i: Int, value: Any) -> Any .. hlist:: :columns: 8 * Kernel Atomically exchange ``value`` with ``arr[i]`` and return the old value. The operation is only atomic on a per-component basis for vectors and matrices. .. function:: warp._src.lang.atomic_exch(arr: Array[Any], i: Int, j: Int, value: Any) -> Any :noindex: .. hlist:: :columns: 8 * Kernel Atomically exchange ``value`` with ``arr[i,j]`` and return the old value. The operation is only atomic on a per-component basis for vectors and matrices. .. function:: warp._src.lang.atomic_exch(arr: Array[Any], i: Int, j: Int, k: Int, value: Any) -> Any :noindex: .. hlist:: :columns: 8 * Kernel Atomically exchange ``value`` with ``arr[i,j,k]`` and return the old value. The operation is only atomic on a per-component basis for vectors and matrices. .. function:: warp._src.lang.atomic_exch(arr: Array[Any], i: Int, j: Int, k: Int, l: Int, value: Any) -> Any :noindex: .. hlist:: :columns: 8 * Kernel * Differentiable Atomically exchange ``value`` with ``arr[i,j,k,l]`` and return the old value. The operation is only atomic on a per-component basis for vectors and matrices. .. function:: warp._src.lang.atomic_exch(arr: FabricArray[Any], i: Int, value: Any) -> Any :noindex: .. hlist:: :columns: 8 * Kernel Atomically exchange ``value`` with ``arr[i]`` and return the old value. The operation is only atomic on a per-component basis for vectors and matrices. .. function:: warp._src.lang.atomic_exch(arr: FabricArray[Any], i: Int, j: Int, value: Any) -> Any :noindex: .. hlist:: :columns: 8 * Kernel Atomically exchange ``value`` with ``arr[i,j]`` and return the old value. The operation is only atomic on a per-component basis for vectors and matrices. .. function:: warp._src.lang.atomic_exch(arr: FabricArray[Any], i: Int, j: Int, k: Int, value: Any) -> Any :noindex: .. hlist:: :columns: 8 * Kernel Atomically exchange ``value`` with ``arr[i,j,k]`` and return the old value. The operation is only atomic on a per-component basis for vectors and matrices. .. function:: warp._src.lang.atomic_exch(arr: FabricArray[Any], i: Int, j: Int, k: Int, l: Int, value: Any) -> Any :noindex: .. hlist:: :columns: 8 * Kernel * Differentiable Atomically exchange ``value`` with ``arr[i,j,k,l]`` and return the old value. The operation is only atomic on a per-component basis for vectors and matrices. .. function:: warp._src.lang.atomic_exch(arr: IndexedFabricArray[Any], i: Int, value: Any) -> Any :noindex: .. hlist:: :columns: 8 * Kernel Atomically exchange ``value`` with ``arr[i]`` and return the old value. The operation is only atomic on a per-component basis for vectors and matrices. .. function:: warp._src.lang.atomic_exch(arr: IndexedFabricArray[Any], i: Int, j: Int, value: Any) -> Any :noindex: .. hlist:: :columns: 8 * Kernel Atomically exchange ``value`` with ``arr[i,j]`` and return the old value. The operation is only atomic on a per-component basis for vectors and matrices. .. function:: warp._src.lang.atomic_exch(arr: IndexedFabricArray[Any], i: Int, j: Int, k: Int, value: Any) -> Any :noindex: .. hlist:: :columns: 8 * Kernel Atomically exchange ``value`` with ``arr[i,j,k]`` and return the old value. The operation is only atomic on a per-component basis for vectors and matrices. .. function:: warp._src.lang.atomic_exch(arr: IndexedFabricArray[Any], i: Int, j: Int, k: Int, l: Int, value: Any) -> Any :noindex: .. hlist:: :columns: 8 * Kernel * Differentiable Atomically exchange ``value`` with ``arr[i,j,k,l]`` and return the old value. The operation is only atomic on a per-component basis for vectors and matrices.