Browse Prior Art Database

APL Data Structure for Summing Matrices along Major and Minor Diagonals

IP.com Disclosure Number: IPCOM000087861D
Original Publication Date: 1977-Mar-01
Included in the Prior Art Database: 2005-Mar-03
Document File: 2 page(s) / 48K

Publishing Venue

IBM

Related People

Reiser, M: AUTHOR

Abstract

APL places a high performance premium on the avoidance of indexing and explicit loops. Disclosed here is a data structure which allows an efficient access to major and minor diagonals of a matrix. The data structure has been instrumental in the implementation of a program for the analysis of general queuing networks where it has been used to calculate discrete convolutions and 2-dimensional exponentially smoothed arrays.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 56% of the total text.

Page 1 of 2

APL Data Structure for Summing Matrices along Major and Minor Diagonals

APL places a high performance premium on the avoidance of indexing and explicit loops. Disclosed here is a data structure which allows an efficient access to major and minor diagonals of a matrix. The data structure has been instrumental in the implementation of a program for the analysis of general queuing networks where it has been used to calculate discrete convolutions and 2-dimensional exponentially smoothed arrays.

A computing system is assumed with parallel access to the rows and columns of a matrix (array). Let A be the original m x n matrix [a(ij)], 0 < i < or = m, 0 < j < or = n. A new matrix is sought, e.g., A', such that the k-th column of A' corresponds to the k'-th minor (major) diagonal of A, i.e., for i = 1,2,...,m, we have See origianal p. 4036. where j = 1,2,..., m + n -1. This transformation is shown schematically in Fig. 1.

In a system which allows multiple definition of the same storage area, the transformation (1) can be computed at negligible cost.

It is assumed that matrices are stored row-wise and accessed through storage descriptors of the form: (origin pointer, # of rows, # of columns). The matrix A is expanded with m extra columns to the right. The storage descriptor of the thus expanded A is (A ,m,m + n). Then A' is given simply by (A ,m,m + n -1), as shown in Fig. 2. It should be noted, in Fig. 2, that any change in A is immediately reflected in A'.

In APL langua...