math.matrices: Add some more matrix norms.
							parent
							
								
									9af298fd49
								
							
						
					
					
						commit
						0e51880199
					
				|  | @ -383,3 +383,12 @@ CONSTANT: test-points { | ||||||
| { t } [ { { 1 2 } { 3 4 } } square-matrix? ] unit-test | { t } [ { { 1 2 } { 3 4 } } square-matrix? ] unit-test | ||||||
| { f } [ { { 1 } { 2 3 } } square-matrix? ] unit-test | { f } [ { { 1 } { 2 3 } } square-matrix? ] unit-test | ||||||
| { f } [ { { 1 2 } } square-matrix? ] unit-test | { f } [ { { 1 2 } } square-matrix? ] unit-test | ||||||
|  | 
 | ||||||
|  | { 9 } | ||||||
|  | [ { { 2 -2 1 } { 1 3 -1 } { 2 -4 2 } } m-1norm ] unit-test | ||||||
|  | 
 | ||||||
|  | { 8 } | ||||||
|  | [ { { 2 -2 1 } { 1 3 -1 } { 2 -4 2 } } m-infinity-norm ] unit-test | ||||||
|  | 
 | ||||||
|  | { 2.0 } | ||||||
|  | [ { { 1 1 } { 1 1 } } frobenius-norm ] unit-test | ||||||
|  |  | ||||||
|  | @ -141,6 +141,9 @@ IN: math.matrices | ||||||
| : mmin ( m -- n ) [ 1/0. ] dip [ [ min ] each ] each ; | : mmin ( m -- n ) [ 1/0. ] dip [ [ min ] each ] each ; | ||||||
| : mmax ( m -- n ) [ -1/0. ] dip [ [ max ] each ] each ; | : mmax ( m -- n ) [ -1/0. ] dip [ [ max ] each ] each ; | ||||||
| : mnorm ( m -- n ) dup mmax abs m/n ; | : mnorm ( m -- n ) dup mmax abs m/n ; | ||||||
|  | : m-infinity-norm ( m -- n ) [ [ abs ] map-sum ] map supremum ; | ||||||
|  | : m-1norm ( m -- n ) flip m-infinity-norm ; | ||||||
|  | : frobenius-norm ( m -- n ) [ [ sq ] map-sum ] map-sum sqrt ; | ||||||
| 
 | 
 | ||||||
| : cross ( vec1 vec2 -- vec3 ) | : cross ( vec1 vec2 -- vec3 ) | ||||||
|     [ [ { 1 2 0 } vshuffle ] [ { 2 0 1 } vshuffle ] bi* v* ] |     [ [ { 1 2 0 } vshuffle ] [ { 2 0 1 } vshuffle ] bi* v* ] | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue