/* call-seq: * matrix.max -> Float * * Returns the value of the maximum element in the matrix. */ VALUE cIGraph_matrix_max(VALUE self){ igraph_matrix_t *m; Data_Get_Struct(self, igraph_matrix_t, m); return rb_float_new(igraph_matrix_max(m)); }
int main() { igraph_matrix_t mat; igraph_sparsemat_t spmat, spmat2; int i; igraph_real_t m1, m2; igraph_rng_seed(igraph_rng_default(), 42); igraph_sparsemat_init(&spmat, DIM1, DIM2, 20); igraph_sparsemat_entry(&spmat, 1, 2, -1.0); igraph_sparsemat_entry(&spmat, 3, 2, 10.0); for (i=0; i<10; i++) { igraph_sparsemat_entry(&spmat, INT(DIM1-1), INT(DIM2-1), 1.0); } igraph_sparsemat_entry(&spmat, 1, 2, -1.0); igraph_sparsemat_entry(&spmat, 3, 2, 10.0); igraph_sparsemat_compress(&spmat, &spmat2); igraph_matrix_init(&mat, 0, 0); igraph_sparsemat_as_matrix(&mat, &spmat2); m1=igraph_sparsemat_min(&spmat2); m2=igraph_matrix_min(&mat); if (m1 != m2) { printf("%f %f\n", m1, m2); return 1; } m1=igraph_sparsemat_max(&spmat2); m2=igraph_matrix_max(&mat); if (m1 != m2) { printf("%f %f\n", m1, m2); return 2; } igraph_sparsemat_minmax(&spmat2, &m1, &m2); if (m1 != igraph_matrix_min(&mat)) { return 3; } if (m2 != igraph_matrix_max(&mat)) { return 4; } igraph_matrix_destroy(&mat); igraph_sparsemat_destroy(&spmat); igraph_sparsemat_destroy(&spmat2); return 0; }
double Matrix::max() const noexcept { return igraph_matrix_max(ptr()); }