A Fast Implementation of Markowitz's Critical Line Algorithm

This repository provides a fast implementation of Markowitz's Critical Line Algorithm in Fortran with bindings in Matlab and Python. See the README files in "src" for a description of its usage and compatibility information. The directory "packages" contains packages with binaries for Matlab and Python.

The details of the algorithm are described in detail in Niedermayer, Andras and Niedermayer, Daniel (2010): Applying Markowitz's Critical Line Algorithm, Handbook of Portfolio Construction, Handbook of Portfolio Construction, pp. 383-400 link

See also the the working paper version.

Note that currently the Matlab bindings are for Matlab version up to 7.0 on Windows (32 bit) and need to be adapted in order to be used with newer versions of Matlab. The files turningpoints.f90 and mexf90.f90 contain tricks to generate Matlab MEX files, which only work on 32 bit systems. If you want to use the software on 64 bit systems, you will have to adapt these files.