From vmarko at ipb.ac.rs Sun Dec 14 12:14:06 2025 From: vmarko at ipb.ac.rs (Marko Vojinovic) Date: Sun, 14 Dec 2025 12:14:06 +0100 (CET) Subject: [QGHG-it-dev-list] Zadatak 37 - racunanje determinante realne kvadratne matrice Message-ID: Implementirati staticku funkciju double real_valued_determinant ( vector> * matrix ) koja kao input dobija pointer na matricu (vektor vektora tipa double), i kao output vraca double koji predstavlja vrednost determinante date matrice. Proveriti da li je pointer na matricu dobro definisan, i da li je matrica kvadratna --- ako ovo nije ispunjeno, prijaviti gresku log_report funkcijom (vidi triangulator/library/include/input_and_output.hpp), i vratiti nulu kao rezultat. Ako matrica jeste kvadratna i ima dimenziju manju od kriticne, izracunati determinantu pomocu Lajbnicove formule [1]. Ako matrica ima dimenziju jednaku ili vecu od kriticne, izracunati determinantu pomocu Gausovog metoda eliminacije [2]. Gausov metod implementirati na kopiji matrice, tako da se originalna matrica ne menja. Kriticnu dimenziju za determinantu definisati kao globalnu varijablu extern int critical_determinant_size unutar triangulator_global namespace-a, i zadati joj default vrednost 10. Sve globalne varijable su definisane u global_vars.cpp i .hpp fajlovima. Funkciju za racunanje determinante staviti u novi source fajl biblioteke, pod nazivom math_functions.cpp, zajedno sa odgovarajucim include fajlom math_functions.hpp, koji stoje zajedno sa ostalim fajlovima unutar putanje za biblioteku (triangulator/library/src i triangulator/library/include). Include-ovati math_functions.hpp unutar triangulator.hpp fajla na odgovarajucem mestu. Unutar triangulator/test/ putanje zatim dodati nov fajl determinanttest.cpp (po ugledu na main.cpp), i u njemu zadati 3-4 matrice raznih dimenzija (i kvadratne i pravougaone), izracunati njihove determinante, i ispisati i matrice i rezultujuce vrednosti determinanti na stdout. Ukoliko imate bilo kakva pitanja ili sugestije vezane za ovaj zadatak, slobodno se javite. :-) Marko [1] https://en.wikipedia.org/wiki/Leibniz_formula_for_determinants [2] https://en.wikipedia.org/wiki/Gaussian_elimination#Pseudocode Dr. Marko Vojinovic Group for Gravitation, Particles and Fields Institute of Physics University of Belgrade ====================== home page: www.markovojinovic.com e-mail: vmarko at ipb.ac.rs