Conjugate transpose: Difference between revisions

Racket version
(Racket version)
Line 630:
</pre>
 
=={{header|Racket}}==
<lang racket>
#lang racket
(require math)
(define H matrix-hermitian)
 
(define (normal? M)
(define MH (H M))
(equal? (matrix* MH M)
(matrix* M MH)))
 
(define (unitary? M)
(define MH (H M))
(and (matrix-identity? (matrix* MH M))
(matrix-identity? (matrix* M MH))))
 
(define (hermitian? M)
(equal? (H M) M))
</lang>
Test:
<lang racket>
(define M (matrix [[3.000+0.000i +2.000+1.000i]
[2.000-1.000i +1.000+0.000i]]))
(H M)
(normal? M)
(unitary? M)
(hermitian? M)
</lang>
Output:
<lang racket>
(array #[#[3.0-0.0i 2.0+1.0i] #[2.0-1.0i 1.0-0.0i]])
#t
#f
#f
</lang>
=={{header|REXX}}==
<lang rexx>/*REXX pgm performs a conjugate transpose on a complex square matrix.*/
Anonymous user