69 prow->
last_col->next_col = sm_element_freelist;
82 register sm_row *prow, *pnext_row;
83 register sm_col *pcol, *pnext_col;
85 for(prow = A->
first_row; prow != 0; prow = pnext_row) {
89 for(pcol = A->
first_col; pcol != 0; pcol = pnext_col) {
129 register int i, new_size;
134 for(i = A->
rows_size; i < new_size; i++) {
143 for(i = A->
cols_size; i < new_size; i++) {
157register int row, col;
173 next_row, prev_row, row_num, row, prow);
181 next_col, prev_col, col_num, col, pcol);
186 save_element = element;
190 prow->
length, next_col, prev_col, col_num, col, element);
193 if (element == save_element) {
195 pcol->
length, next_row, prev_row, row_num, row, element);
252 next_col, prev_col, prow->
length);
262 next_row, prev_row, pcol->
length);
300 next_row, prev_row, A->
nrows);
334 next_col, prev_col, A->
ncols);
372 register sm_row *large_row, *prow;
373 register int max_length;
378 if (prow->
length > max_length) {
379 max_length = prow->
length;
391 register sm_col *large_col, *pcol;
392 register int max_length;
397 if (pcol->
length > max_length) {
398 max_length = pcol->
length;
428 err = fscanf(fp,
"%d %d", &i, &j);
431 }
else if (err != 2) {
445 int i, j, k, nrows, ncols;
449 if (fscanf(fp,
"%d %d", &nrows, &ncols) != 2) {
454 for(i = 0; i < nrows; i++) {
455 if (fscanf(fp,
"%lx", &x) != 1) {
458 for(j = 0; j < ncols; j += 32) {
459 if (fscanf(fp,
"%lx", &x) != 1) {
462 for(k = j; x != 0; x >>= 1, k++) {
483 (void) fprintf(fp,
"%d %d\n",
p->row_num,
p->col_num);
498 (void) fprintf(fp,
" ");
500 (void) fprintf(fp,
"%d", (pcol->
col_num / 100)%10);
506 (void) fprintf(fp,
" ");
508 (void) fprintf(fp,
"%d", (pcol->
col_num / 10)%10);
513 (void) fprintf(fp,
" ");
515 (void) fprintf(fp,
"%d", pcol->
col_num % 10);
519 (void) fprintf(fp,
" ");
521 (void) fprintf(fp,
"-");
526 (void) fprintf(fp,
"%3d:", prow->
row_num);
545 (void) fprintf(fp,
"%s %d rows by %d cols\n", s, A->
nrows, A->
ncols);
546 if (A->
nrows < max) {
556 register sm_row *prow, *pnextrow;
557 register sm_col *pcol, *pnextcol;
559 for(
p = sm_element_freelist;
p != 0;
p = pnext) {
563 sm_element_freelist = 0;
565 for(prow = sm_row_freelist; prow != 0; prow = pnextrow) {
571 for(pcol = sm_col_freelist; pcol != 0; pcol = pnextcol) {
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
#define REALLOC(type, obj, num)
ABC_NAMESPACE_IMPL_START sm_col * sm_col_alloc()
ABC_NAMESPACE_IMPL_START sm_matrix * sm_alloc()
int sm_num_elements(sm_matrix *A)
ABC_NAMESPACE_IMPL_START sm_row * sm_row_alloc()
typedefABC_NAMESPACE_HEADER_START struct sm_element_struct sm_element
struct sm_col_struct sm_col
sm_element * sm_col_find()
sm_row * sm_longest_row()
#define sm_get_row(A, rownum)
sm_col * sm_longest_col()
sm_matrix * sm_alloc_size()
struct sm_matrix_struct sm_matrix
struct sm_row_struct sm_row
#define sm_foreach_row(A, prow)
sm_element * sm_row_find()
#define sm_get_col(A, colnum)
#define sm_element_alloc(newobj)
void sm_col_remove_element()
void sm_row_remove_element()
#define dll_unlink(p, first, last, next, prev, count)
#define sm_element_free(e)