next up previous contents
Next: 2.3.5 Initializing object data Up: 2.3 Linear Algebra Objects Previous: 2.3.3 Linear algebra object

2.3.4 Extracting and setting local data

        Notice that the local information routines give one access to the address of where the local data is stored. It is this address that provides the user with the only direct access to data encoded in an object. Purists would argue that this thus allows a window of opportunity to corrupt the local data.

A second method for accessing the local matrix or vector of a linear algebra object is through extraction of its contents. This is achieved by the call


figure2673

figure2675

figure2678


This call will take the local contents of the object obj and copy them into the local buffer at address buf. If the local contents form a matrix, ldim_buf gives the local leading dimension of the buffer. In this case, the local length and width of the object are returned in rows_in_buf and cols_in_buf. There is the option of transposing (or conjugate transposing) the data by setting   transpose to PLA_TRANS (or PLA_CONJ_TRANS). Otherwise, transpose should be set to PLA_NO_TRANS. If the local contents form a vector, the stride in the buffer is indicated by stride_buf, and cols_in_buf will equal one. In this case, transpose and ldim_buf have no meaning.

The inverse operation is given by


figure2711

figure2713

figure2716


The primary use of these operations in the PLAPACK infrastructure have been realized during the packing and unpacking before copying or reducing the contents of objects (to be discussed in Chapter gif).


next up previous contents
Next: 2.3.5 Initializing object data Up: 2.3 Linear Algebra Objects Previous: 2.3.3 Linear algebra object

rvdg@cs.utexas.edu