[SciPy-dev] genetic algorithm, number theory, filter design, zero finding

Chuck Harris Chuck.Harris at sdl.usu.edu
Mon Apr 8 15:31:56 CDT 2002


Hi All,

I've written a number of python routines over the past half year for my own use, and wonder if it might be appropriate to include some of them in scipy. They break down into the general categories:

Number Theory : These were used for analysing arrays of antennas used in radar interferometry. They are also useful in integer programming, cryptography, and computational algebra.

	Reduction of a matrix to Hermite normal form
	Reduction of a matrix to Smith normal form
	LLL basis reduction
	LLL basis reduction - deep version
	Gram-Schmidt orthogonalization

Filter Design: Routines used for designing Complex Hermitian digital filters :

	Remez exchange algorithm -  for arbitrary Chebychev systems.

Zero finders: General use and fun. Bisection best for some special cases, Ridder is middle of the pack,
Brent is generally best, with the two versions basically a wash, although the hyperbolic version is simpler. Whether or not there is any virtue to these as opposed to solve, I don't know.

	Bisection
	Illinois version of regula falsa
	Ridder
	Brent method with hyperbolic interpolation
	Brent method with inverse quadatic interpolation

Genetic algorithm: Used in digital filter design to optimize for coefficient truncation error. I looked at galib and found it easier to roll my own, but didn't try for any great generality. I think it would be good to include uniform crossover and to pull the fitness function out of the genome --- in a tournament, fitness can depend on the population. Perhaps it can all be made simpler.

P.S. The formatting page at scipy.org disagrees with the Python PEP's -- Python.org suggests CapWords for class names, not lowercase with underscores.

Chuck

	
	



More information about the Scipy-dev mailing list