Description: getranks.m is a MATLAB program that tries to compute the possible ranks of the differential of the map from conductances to response matrix entries. Input: getranks.m requires two arguments. The first argument can either be a Kirchhoff matrix or a matrix listing the node indices for each edge. The latter would be a two column matrix with as many rows as edges. The two columns contain the indices of the nodes the edge connects, with the smaller index in the first column. The second argument is the number of boundary nodes in the network. Output: 1. Kirchhoff matrix K. 2. Response matrix L. 3. Differential D. 4. Row reduced forms of D (possibly under multiple conditions) in R. 5. The pivots of R are contained in pivots. 6. The possible ranks of D are outputted in ranks. 7. A matrix, C, listing zero conditions assumed by the program. 8. A matrix, A, listing non-zero assumptions made. Usage: [K,L,D,R,pivots,ranks,C,A] = getranks(gamma,n); Note, gamma here could either be a Kirchhoff matrix or the edge index matrix described above. Examples of how to run this program are contained in the script frog.m. Comments: The program is not guaranteed to correctly identify all the possible ranks of the differential. Although computing the differential is just a brute force symbolic computation, the program is not always so smart about identifying when symbolic expressions can be zero or not. So any results must be interpreted in light of what assumptions the program has made. These assumptions are contained in outputted matrices C and A. Also, due to highly inefficient code, this program will run out of memory for larger networks. In retrospect, MATLAB was not the best tool for this. We should probably be using SAGE now for symbolic computations.