forked from fabianp/rogues
A Python / Numpy / Scipy port of Prof. Nick Higham's m*lab 'gallery' matrices plus extras
serenidpity/rogues
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
The "rogues" module is a reimplmentation of Nick Higham's test matrices into Python, Numpy, and Scipy. They were generally ported by using the iPython shell. They were developed from Version 3 (1995) of the test matrix package from code downloaded from Higham's web site. Also, the earlier TOMS 694 version was used as reference in some cases. That code was download from netlib. Both of these packages were accessed in February of 2009. Also included are a small number of routines from Nick Higham's matrixcomp library as well as several required functions that had no implementations. Some of the issues in porting to numpy from m*lab * numpy arrays have zero based array indexing while m*lab has one's based array indexing * numpy / python has indexing that does not include the upper end of the specified range, e.g. a[0:n] is a[0], a[1], ..., a[n-1]. This is different from m*lab * Of course, it is much easier to handle default values on the input parameters in Python * Element by element operation is the default in numpy. To get the matrix behavior, the array must be converted to matrices. Also, when dealing with arrays, we do not need to use the dot notation of m*lab (ie x./y). Also numpy has the a concept called broadcasting so that we can write and expression such as 1/x which, if x is a array becomes [[1/x[0,0], 1/x[0,1], ... rather than ones(n,n)./x * Some of the numpy functions take tuples for the shapes of arrays (notably zeros, ones, etc) while others do not (random.randn()) * The m*lab routines that take matrix size arguments generally assume that a single dimension, say n, means the matrix is square, say n by n. This means that when you want a vector, you have to give the function _two_ arguments ie say zeros(n,1) or ones(1,n) etc. In numpy, one dimension is the default and we use zeros(n) etc. When we need a two dimensional array we use zeros((m,n)) Comments and references were mostly preserved in the functions. They were slightly updated to reflect the changes necessary in Python
About
A Python / Numpy / Scipy port of Prof. Nick Higham's m*lab 'gallery' matrices plus extras
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published
Languages
- Python 100.0%