Need help with liblbfgs?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

chokkan
441 Stars 169 Forks MIT License 91 Commits 21 Opened issues

Description

libLBFGS: a library of Limited-memory Broyden-Fletcher-Goldfarb-Shanno (L-BFGS)

Services available

!
?

Need anything else?

Contributors list

# 29,173
Keras
qemu-kv...
osx
kvm
2 commits
# 86,360
Clojure
Rust
Heroku
dokku
1 commit
# 54,096
C++
Shell
hyperpa...
opencl
1 commit
# 566,265
C
Shell
1 commit
# 292,651
C
Shell
Objecti...
fast-fo...
1 commit
# 9,983
Scala
aws-lam...
Apache ...
lambda
1 commit
# 128,051
Shell
Objecti...
speech-...
lexicon
1 commit
# 176,352
Perl
Lua
Linux
Emacs
1 commit
# 426,177
C++
C
Shell
1 commit
       libLBFGS: C library of limited-memory BFGS (L-BFGS)

                                   Copyright (c) 1990, Jorge Nocedal
                             Copyright (c) 2007-2010, 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 2008] Open the solution file "lbfgs.sln" and build it.

[GCC]

On top of a compiler and GNU Make, you will also need to install libtool and automake to build.

On Debian distributions, this can be installed with: sudo apt install libtool automake

$ ./autogen.sh $ ./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, and the SSE routine is for 32 bit float values. Since the default parameters in libLBFGS are tuned for double precision values, it may need to modify these parameters to use the SSE optimization routines.

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

$ ./configure --enable-sse2

To build libLBFGS with SSE2 optimization enabled on Microsoft Visual Studio 2005, define USESSE and _SSE2__ symbols.

Make sure to run libLBFGS on processors where SSE2 instrunctions are available. The library does not check the existence of SSE2 instructions.

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 on CPUs.

=========================================================================

4. License

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

$Id$

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.