i++) { v[i] = (double*) malloc(m * sizeof(double));

if (v[i] == NULL) { printf ("** Blad: Niewystarczajaca pamiec **"); free_real_matrix(v, n); return (NULL);

// inicjalizacja macierzy o wartościach zerowych if (random == 0) { for (j = 0; j < m; j++) v[i][j] = 0.0;

// inicjalizacja macierzy o wartościach losowych z przedziału od 0 do 10 else { if (random == 1) { for (j = 0; j < m; j++) { a = rand(); v[i][j] = (a - (int)a) * 10;

return (v); // zwraca wskaźnik na wektor. }

/*------------------------------------------------------------------------------*/ // Ta funkcja dealokuje macierz (zwalnia pamięć) double **free_real_matrix(double **v, int tam) {

int i;

if (v == NULL) { return (NULL);

for (i = 0; i < tam; i++) { if (v[i]) { free(v[i]); // zwalnia rząd macierzy v[i] = NULL;

free(v); // zwalnia wskaźnik / v = NULL;

return (NULL); //zwraca wskaźnik NULL / }

/*------------------------------------------------------------------------------*/

Bibliografia Volker Strassen, Gaussian Elimination is not Optimal, Numer. Math. 13, s. 354–356, 1969. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein. Wprowadzenie do algorytmów, wyd. siódme, Wydawnictwa Naukowo-Techniczne, s. 751–758, Warszawa 2005.

Linki zewnętrzne [dostęp 2025-12-22].

Strassena Kategoria:Działania na macierzach