Go to file
naoaki 8bad5e136a - Added some note on SSE/SEE2 optimization.
- Supported SSE/SSE2 optimization with GCC.

git-svn-id: file:///home/svnrepos/software/liblbfgs/trunk@3 ecf4c44f-38d1-4fa4-9757-a0b4dd0349fc
2008-04-25 06:32:53 +00:00
doc - Added some note on SSE/SEE2 optimization. 2008-04-25 06:32:53 +00:00
include - Added some note on SSE/SEE2 optimization. 2008-04-25 06:32:53 +00:00
lib - Added some note on SSE/SEE2 optimization. 2008-04-25 06:32:53 +00:00
sample - Added some note on SSE/SEE2 optimization. 2008-04-25 06:32:53 +00:00
AUTHORS Initial commit. 2008-04-24 15:04:59 +00:00
autogen.sh Initial commit. 2008-04-24 15:04:59 +00:00
ChangeLog Initial commit. 2008-04-24 15:04:59 +00:00
configure.in - Added some note on SSE/SEE2 optimization. 2008-04-25 06:32:53 +00:00
COPYING Initial commit. 2008-04-24 15:04:59 +00:00
lbfgs.sln - Added some note on SSE/SEE2 optimization. 2008-04-25 06:32:53 +00:00
Makefile.am Initial commit. 2008-04-24 15:04:59 +00:00
NEWS Initial commit. 2008-04-24 15:04:59 +00:00
README - Added some note on SSE/SEE2 optimization. 2008-04-25 06:32:53 +00:00

           libLBFGS: C library of limited-memory BFGS (L-BFGS)

                                       Copyright (c) 1990, Jorge Nocedal 
                                 Copyright (c) 2007,2008, Naoaki Okazaki 

=========================================================================
1. Introduction
=========================================================================
libLBFGS is a C port of the implementation of Limited-memory
Broyden-Fletcher-Goldfarb-Shanno (L-BFGS) method written by Jorge Nocedal.
The original FORTRAN source code is available at:
http://www.ece.northwestern.edu/~nocedal/lbfgs.html

The L-BFGS method solves the unconstrainted minimization problem:
    minimize F(x), x = (x1, x2, ..., xN),
only if the objective function F(x) and its gradient G(x) are computable.

Refer to the libLBFGS web site for more information.
http://www.chokkan.org/software/liblbfgs/



=========================================================================
2. How to build
=========================================================================
[Microsoft Visual Studio 2005]
Open the solution file "lbfgs.sln" and build it.

[GCC]
$ ./configure
$ make
$ make install  # To install libLBFGS library and header.



=========================================================================
3. Note on SSE/SSE2 optimization
=========================================================================
This library has SSE/SSE2 optimization routines for vector arithmetic
operations on Intel/AMD processors. The SSE2 routine is for 64 bit double
values whereas the SSE routine is for 32 bit float values. Since the
default parameters for L-BFGS are tuned for double precision values, it
may be more straightforward to use SSE2 optimization than to use SSE.

To use the SSE2 optimization routine, specify --enable-sse2 option to the
configure script.

$ ./configure --enable-sse2

To build libLBFGS with SSE optimization on Microsoft Visual Studio 2005,
define USE_SSE and __SSE2__ symbols.

Make sure to run libLBFGS on processors where SSE2 instrunctions are
available.

To package maintainers,

Please do not enable SSE/SSE2 optimization routine. The library built
with SSE/SSE2 optimization will crash without any notice when necessary
SSE/SSE2 instructions are unavailable.



=========================================================================
4. License
=========================================================================
libLBFGS is distributed under the term of the MIT license.
Please refer to COPYING file in the distribution.

$Id$