 
 
 
	
ihermite παίρνει ως όρισμα έναν πίνακα 	
A με συντελεστές 
στο ℤ.
	
ihermite επιστρέφει δύο πίνακες 	
U και 	
B τέτοιους ώστε 
	
B=U*A, όπου ο 	
U είναι αντιστρέψιμος στο ℤ (	
det(U) = ± 1)
και ο 	
B είναι άνω τριγωνικός. Εκτός αυτού,
η απόλυτη τιμή των συντελεστών πάνω από τη διαγώνιο του 	
B είναι μικρότερη 
από τον οδηγό της στήλης διαιρεμένο δια 2.
Η απάντηση υπολογίζεται από έναν αλγόριθμο σαν τον αλγόριθμο αναγωγής 	
Gauss
κάνοντας μόνο πράξεις γραμμών με ακέραιους συντελεστές.
Είσοδος :
΄Έξοδος :
Εφαρμογή: Υπολογίστε μια ℤ-βάση του πυρήνα ενός πίνακα
με ακέραιους συντελεστές
Έστω 	
M ένας πίνακας με ακέραιους συντελεστές.
Είσοδος :
Αυτό επιστρέφει τους πίνακες U και τον A τέτοιους ώστε 	
A=U*transpose(M) και επομένως
	
transpose(A)=M*transpose(U).
Οι μηδενικές στήλες του 	
transpose(A) (στα δεξιά του πίνακα,
προερχόμενες από τις μηδενικές γραμμές του A στο κάτω μέρος του πίνακα)
αντιστοιχούν στις στήλες του 	
transpose(U) οι οποίες σχηματίζουν μια βάση 
του 	
Ker(M). Με άλλα λόγια, οι μηδενικές γραμμές του 	
A
αντιστοιχούν στις γραμμές του 	
U 
οι οποίες σχηματίζουν μια βάση του 	
Ker(M).
Παράδειγμα
Έστω 	
M:=[[1,4,7],[2,5,8],[3,6,9]]. Είσοδος 
Έξοδος:
Αφού 	
A[2]=[0,0,0], μια ℤ-βάση του 	
Ker(M) είναι
	
U[2]=[-1,2,-1].
Επαλήθευση 	
M*U[2]=[0,0,0].
 
 
