The PLAPACK calling sequences for swap are place HR here

place HR here
The data type of the operands and parameters like vector length and stride are now passed as part of linear algebra
objects `x` and `y`.

When a node calls `PLA_Local_swap`, the operation
is equivalent to
extracting the local information (data type, length, and pointer to the
buffers) and locally performing the swap.
*The object type can be any valid PLAPACK object type.*
Like the local copy operation, `PLA_Local_swap` can also
swap two dimensional objects
(multiscalars, (projected) (duplicated) multivectors and matrices).
The local dimensions of `x`, and `y` must be such
that the operation is well-defined
(i.e., local dimensions match).
All objects must have the same data type.
Notice: no communication is performed as part of this call.
Thus, all information must be locally available.

All nodes must simultaneously call `PLA_Swap`, which performs
the BLAS call on the distributed objects.
Parameters `x` and `y`
can be of any object type.
The global dimensions of the different objects must be such
that the operation is well-defined.