GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
#include "typedef.h"1#include "matrix.h"2#include "tools.h"34/**************************************************************************\5@---------------------------------------------------------------------------6@---------------------------------------------------------------------------7@ FILE: find_max_entry.c8@---------------------------------------------------------------------------9@---------------------------------------------------------------------------10@11\**************************************************************************/1213static int max_abs( a, b )14int a, b;15{16int aa = abs(a), ab=abs(b);1718return ( aa >= ab ? aa : ab );1920}2122/*{{{}}}*/23/*{{{ find_max_entry*/242526/**************************************************************************\27@---------------------------------------------------------------------------28@ int find_max_entry(mat)29@ matrix_TYP *mat;30@31@ calculates the maximal entry of mat->array.SZ32@ if mat->array.Z != 0 or mat->prime != 0 the functions return 0.33@---------------------------------------------------------------------------34@35\**************************************************************************/36int find_max_entry(mat)37matrix_TYP *mat;38{39int i,j;40int **Z, *S_i;41boolean flag;4243if( mat->prime != 0 || mat->array.N != NULL ) {44return 0;45}4647flag = 0;48Z = mat->array.SZ;49if(mat->flags.Diagonal) {50if(mat->flags.Scalar) {51return abs(Z[0][0]);52} else {53for (i = 0; i < mat->rows; i++) {54flag = max_abs(flag,Z[i][i]);55}56return flag;57}58}59if(mat->flags.Symmetric) {60for(i = 0; i < mat->rows; i++) {61for(j = i; j < mat->cols; j++) {62if(Z[i][j]) flag = max_abs(flag,Z[i][j]);63}64}65return flag;66}6768for(i = 0; i < mat->rows; i++) {69S_i = Z[i];70for(j = 0; j < mat->cols; j++) {71if(S_i[j]) {72if(abs(S_i[j]) > flag) {73flag = abs(S_i[j]);74}75}76}77}78return flag;79}8081/*}}} */82838485