I wanted to do this for DSP.jl as this is used for filter design, but all opensource implementations I could find to use as a reference just wrapped the same old piece of Fortran code or a low-level translation of it to C (this is the case in Scipy). As I am not terribly familiar with the algorithm's internal workings and had other priorities at the moment, I ended up never working on it. I think that we could benefit from a nice and clean Julia rewrite of the algorithm, though.
-- João Felipe Santos On Tue, Jun 17, 2014 at 8:13 AM, Hans W Borchers <hwborch...@gmail.com> wrote: > > *Is there an implementation of the Remez algorithm in Julia,or is someone > working on this?* > > Sometimes it is important to have a (polynomial) *minmax approximation* > to a curve or function (on a finite interval), i.e., an approximating > polynomial of a certain maximum degree such that the maximum (absolute) > error is minimized. > > A least-squares approach will not work. For example, given a hundred or > more discrete points representing the Runge function on [-1, 1], package > *CurveFit* will generate a polynomial of degree 10 that has a maximum > distance of about 0.10..., while the true minimax solution will have a > maximal distance of about 0.06... ! > > The Remez algorithm <http://en.wikipedia.org/wiki/Remez_algorithm> solves > this problem applying an iterative procedure. As Nick Trefethen has once > said about other implementations of this algorithm: > > "One can find a few other computer programs in circulation, but > overall, it > seems that there is no widely-used program at present for computing > best > approximations" > > The most reliable and accurate existing realization nowadays appears to be > the one available in Trefethen's MATLAB toolbox *chebfun*, operating with > Chebyshev approximations -- perhaps package *ApproxFun* would be a good > starting point. > > I thought that Julia might be an appropriate scientific computing > environment to realize an efficient and accurate version of the Remez > algorithm. I am considering doing it myself, but would prefer if someone > with a better command of Julia has already done this. >