# numpy

Description: This package adds numerical linear algebra and other numerical computing capabilities to python.

Maintainers:

- Josh Kantor Michael Abshoff

Upstream Contact:

- Travis Oliphant Fernando Perez Brian Granger

Dependencies:

- Python Lapack Blas Atlas Fortran

Special Update/Build Instructions:

- The file $SAGE_ROOT/devel/sage/sage/ext/numpy.pxi comes from this file and must be updated if/when
- the file src/numpy/doc/cython/numpy.pxi is updated.

- Josh Kantor has done this the most so get him to do it if possible.
- To ensure that numpy compiles consistently regardless of what fortrans are on the
- users system, we patch the files
numpy/distutiles/fcompiler/init.py and numpy/distutiles/fcompiler/gnu.py

- This is done by adding a Sage_FCompiler and Sage_FCompiler_1 compiler clases to gnu.py. Sage_FCompiler is for g95, and Sage_FCompiler_1 is for gfortran In updating to a newer version of numpy it is usually possible to just copy these classes into the new gnu.py. These classes control what flags are used and libraries are linked in when compiling fortran code (as well as the exact compiler called).
The init.py file is modified so that sage_fortran is always the default compiler, which uses either Sage_FCompiler or Sage_FCompiler_1. This file changes sometimes and the exact modification necessary is not constant so it basically requires figuring out what is going on. For example in the current 1.1.0: At line 682 we add sage_fortran to the beginning of the list of compilers on all platforms of interest, this is the _default_compilers dict. At line 701, we figure out whether we use gfortran or g95 and set cls to Sage_FCompiler or Sage_FCompiler_1 as appropriate (this version string test could probably be better but seems to work consistently). At line 742, we add 'sage_fortran':('gnu',cls,"GNU Fortran") to the dictionary of possible compilers. Since we modified the _default_compilers dict, sage_fortran, will be tried first and it will use the compiler class cls which refers to Sage_Fcompilers or Sage_FCompiler_1.

- Scipy uses numpy's distutils to control its compilation of fortran code. Whenever numpy is updated it is necessary to make sure that scipy still builds ok.

- users system, we patch the files

## Changelog

### numpy-1.2.0.p0 (Michael Abshoff, September 27th, 2008)

- quiet a couple deprecation warnings in arrayobject.c and numpytest.py. These changes need to be reverted once we update to scipy 0.7. We also need to fix some API issues in our code once those fixes are reverted - see #4205.

### numpy-1.2.0 (Jason Grout, September 25th, 2008)

- update to numpy 1.2.0, rebase and update patches

### numpy-1.1.0.p0 (Michael Abshoff, August 27th, 2008)

- clean up patches directory

### numpy-1.1.0 (Jason Grout, July 10th, 2008)

- update to numpy 1.1.0

### numpy-20080104-1.0.4.p4 (Michael Abshoff, May 18th, 2008)

- add 64 bit OSX build support

### numpy-20080104-1.0.4.p3 (William Stein, May 16, 2008)

- (Stupid) patch to numpy/linalg/setup.py to support cygwin

### numpy-20080104-1.0.4.p2(Josh Kantor)

- update gnu.py to fix issue with inline fortran on osx

=== numpy-20080104-1.0.4.p1 (Josh Kantor & Michael Abshoff) ====

- update SPK.txt (Josh Kantor)
- remove *~
- update .hgignore

=== numpy-20080104-1.0.4.p0 (Michael Abshoff) ====

- add SPKG.txt
- create hg repo

=== numpy-20080104-1.0.4 (Josh Kantor) ====

- update to numpy 1.0.4 (Josh Kantor)