\$Id\$ missing: - find max of matrix A (find_max) - Subtract two vectors (v_sub) - Scalar-matrix multiplication (sm_mlt) - stdin read-function "m_input" - stdin read in vector from stdin (v_input) VNULL: null vector * Ax calculations can be done with G\_matrix\_multiply() /* get matrix element shortcut*/ #define ME(x, y, z) G_matrix_get_element( (x), (y), (z) ) ------------------------------------------------------- MESCHACH vs. GRASS implementation Vector: V_FREE(Avector1): G_vector_free(Avector1) v_norm2: G_vector_norm_euclid v_copy: G_vector_copy v_sub: G_vector_sub v_get(A->cols): G_vector_init(?,A->cols, CVEC) ve: G_vector_get_element() v_max(Avector1, index): G_vector_norm_maxval(Avector1, index) ? Matrix-Vector: get_col(A, i, VNULL): G_matvect_get_column(A, i) Matrix: M_FREE: G_matrix_free me: G_matrix_get_element(A, i, j) m_get((A->m+1), A->n): G_matrix_init(A->rows + 1, A->cols) A->m: A->rows (matrix dimensions) A->n: A->cols m_transp(A_tilde, MNULL): G_matrix_transpose(A_tilde) find_max: m_copy: G_matrix_copy mv_mlt: G_matrix_product ?: G_matrix_print ?: G_matrix_inverse ?: G_matrix_LU_solve sm_mlt: m_input: Do you mean something that would initialise a matrix from an array like x[i][j]? v_input:Probably get params: [rows,cols] and G_matrix_init(), then set values with G_set_matrix_element. See my remarks above re. G_vector_init()