[ibis-interconn] Re: Draft "pseudo-specification" for sparse matrices...

  • From: <radek_biernacki@xxxxxxxxxxx>
  • To: <michael.mirmak@xxxxxxxxx>, <ibis-interconn@xxxxxxxxxxxxx>
  • Date: Wed, 15 Jul 2009 00:21:56 -0600

Hi all,

I think we need a simpler and a more general solution. The Touchstone files are 
of general purpose and as such need as simple and general solution (and 
terminology) as possible.

The well established form of specifying the sparse matrix entries is to provide 
triplets: row, column and the value of structural non-zero entries. We should 
follow it. Of course, we do not want to repeat the row-column info for each 
data group. Instead, we specify the order of the matrix entries, which is then 
followed in each data group. Thus let me suggest the following.

1. Expand [Matrix Format] keyword by allowing another value: "Sparse". This 
value could be listed together with "Lower" or "Upper" or by itself. 
Alternatively, we can add three values "Sparse", "Sparse_Lower" and 
"Sparse_Upper".

2. Add a new keyword [Sparse Matrix Entries] to be followed, possibly in 
multiple lines, by a number pairs in the form of (i,j) separated by spaces and 
indicating the distinct row-column indices of the original matrix for which 
there will be numerical data provided under the [Network Data] keyword. There 
should be no restrictions on the sequence of the entries, or on any specific 
way of breaking this info into lines. We also do not need to insist on every 
row to be present within the pairs specified.

3. We may specify, using a separate keyword, the total number of entries, if 
desired. Otherwise, we need a clear termination point of this info, for example 
[Sparse Matrix Entries End], or another keyword, as discussed below.

4. The keyword [Sparse Matrix Entries] should be required if the "Sparse" 
format is specified.

5. Each data group under the [Network Data] keyword should contain 2n+1 real 
numbers representing the frequency and n complex matrix entries in the format 
specified in the Option Line. The order and the number of the matrix entries 
must follow that of the [Sparse Matrix Entries] keyword. There should be no 
restrictions on how the data is broken into multiple lines.

That should be all - for the general case.

6. If the matrix contains structurally identical entries, we can address it 
using an additional, optional keyword [Implicit Sparse Matrix Entries]. This 
keyword will have a similar meaning to Michael's/Vladimir's [Vector]. The 
[Implicit Sparse Matrix Entries] should be followed by at least two (i,j) 
pairs, and as many as the case may be. The first pair must be one of pairs 
listed under the [Sparse Matrix Entries] keyword and all the additional pairs 
shall be distinct. The interpretation of the list is that any value provided 
for the row-column specified by the first pair is also assigned to all other 
matrix elements indicated by the pairs that follow. The first pair may be 
separated from the rest by a colon ":".

7. Any number of [Implicit Sparse Matrix Entries] may be specified, but one 
after another.

8. We may specify the number of such implicit entry pairs, or simply the list 
may end with another [Impilicit Sparse Matrix Entries] keyword, or with the 
[Sparse Matrix Entries End].

Example:

[Matrix Format] Sparse

[Sparse Matrix Entries]
(1,1) (1,5) (3,1)
[Implicit Sparse Matrix Entries]
(1,1): (2,2) (3,3) (4,4)
[Implicit Sparse Matrix Entries]
(1,1): (5,5)
[Sparse Matrix Entries End]

[Network Data]

...
1.1e9 0.05 -0.0001 0.91 0.07 0.01 -0.3
...

The corresponding full matrix would be:


1.1e9 0.05 -0.0001 0 0          0 0          0 0          0.91 0.07
      0 0          0.05 -0.0001 0 0          0 0          0 0
      0.01 -0.3    0 0          0.05 -0.0001 0 0          0 0
      0 0          0 0          0 0          0.05 -0.0001 0 0
      0 0          0 0          0 0          0 0          0.05 -0.0001

Radek


-----Original Message-----
From: ibis-interconn-bounce@xxxxxxxxxxxxx 
[mailto:ibis-interconn-bounce@xxxxxxxxxxxxx] On Behalf Of Mirmak, Michael
Sent: Tuesday, June 30, 2009 9:11 PM
To: ibis-interconn@xxxxxxxxxxxxx
Subject: [ibis-interconn] Draft "pseudo-specification" for sparse matrices...

Enclosed please find some simplified draft language to implement Vladimir's 
concept for sparse matrices, which I believe accomplishes Walter's original 
intent.  This adds one "section" to the specification, with two underlying 
keywords.  This will give the specification an actual hierarchy.

-       MM

------------------------------------------------------------------------

[Sparse Matrix Description]
Optional keyword/section.

Sparse Matrix Description remaps the data in the full-size matrix (n by n, 
where n is given by [Number of Ports]) into a smaller matrix.  The [Network 
Data] keyword data given later in the file changes meaning from expressing the 
data in the full matrix to expressing the unique data points remapped into the 
full matrix by the [Vectors] keyword.

Note that, if [Sparse Matrix Description] is present, the size of the [Network 
Data] matrix does *not* need to match the size of a matrix given by [Number of 
Ports] x [Number of Ports].   Instead, each line of the [Network Data] keyword 
must have as many values as 2*[Number of Vectors].

[Number of Vectors]
Integer argument, greater than zero.  This indicates the number of vector lines 
to expect under [Vectors].

[Vectors]
Lines of numbers.  First token in each line is an integer, representing the 
number of the vector being described.  Following each vector are integers 
organized into pairs.  Each pair represents a row and column in the full 
matrix, whose size is given by [Number of Ports].

Each vector line represents a list of all the identical pair values in the 
full-size matrix.

[Vectors] must contain at least one line but has no maximum number of lines.

Each line given under [Vector] must contain one and only one vector identifier 
at the beginning of the line, and at least one data pair.

The number of vector pairs under [Vectors] must match the value given by 
[Number of Ports] x [Number of Ports].

[End Sparse Matrix Description]



------------------------------------------------------------------
      The IBIS Ad Hoc Interconnect Task Group Mailing List

Archives are available at:     
                //www.freelists.org/archives/ibis-interconn

TO UNSUBSCRIBE:
        Send a message to "ibis-interconn-request@xxxxxxxxxxxxx" 
        with a subject of "unsubscribe"

To administer your subscription status from the web, visit:
                //www.freelists.org/list/ibis-interconn





------------------------------------------------------------------
      The IBIS Ad Hoc Interconnect Task Group Mailing List

Archives are available at:
                //www.freelists.org/archives/ibis-interconn

TO UNSUBSCRIBE:
        Send a message to "ibis-interconn-request@xxxxxxxxxxxxx"
        with a subject of "unsubscribe"

To administer your subscription status from the web, visit:
                //www.freelists.org/list/ibis-interconn



Other related posts: