From 0398239cd1b4f40996293431307f9fa9e8877f34 Mon Sep 17 00:00:00 2001 From: nksallem <nksallem@laas.fr> Date: Fri, 5 Nov 2010 11:46:13 +0100 Subject: [PATCH] [wip/liblbfgs] Add liblbfgs an implementation of L-BFGS optimization method --- Makefile | 1 + liblbfgs/DESCR | 16 ++++++++++++++++ liblbfgs/Makefile | 35 +++++++++++++++++++++++++++++++++++ liblbfgs/PLIST | 9 +++++++++ liblbfgs/depend.mk | 26 ++++++++++++++++++++++++++ liblbfgs/distinfo | 3 +++ 6 files changed, 90 insertions(+) create mode 100644 liblbfgs/DESCR create mode 100644 liblbfgs/Makefile create mode 100644 liblbfgs/PLIST create mode 100644 liblbfgs/depend.mk create mode 100644 liblbfgs/distinfo diff --git a/Makefile b/Makefile index 1f100c0a..bf2161a5 100644 --- a/Makefile +++ b/Makefile @@ -17,5 +17,6 @@ SUBDIR+= sot-gui SUBDIR+= spark-genom SUBDIR+= stackoftasks SUBDIR+= visp +SUBDIR+= liblbfgs include ../mk/robotpkg.subdir.mk diff --git a/liblbfgs/DESCR b/liblbfgs/DESCR new file mode 100644 index 00000000..04ef9696 --- /dev/null +++ b/liblbfgs/DESCR @@ -0,0 +1,16 @@ +This library 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. The +well-known Newton's method requires computation of the inverse of the hessian +matrix of the objective function. However, the computational cost for the inverse +hessian matrix is expensive especially when the objective function takes a large +number of variables. The L-BFGS method iteratively finds a minimizer by +approximating the inverse hessian matrix by information from last m iterations. +This innovation saves the memory storage and computational time drastically for +large-scaled problems. \ No newline at end of file diff --git a/liblbfgs/Makefile b/liblbfgs/Makefile new file mode 100644 index 00000000..603d4f5c --- /dev/null +++ b/liblbfgs/Makefile @@ -0,0 +1,35 @@ +# $LAAS: Makefile 2010/03/22 16:02:45 nksallem $ +# +# Copyright (c) 2007-2010 LAAS/CNRS +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# 1. Redistributions of source code must retain the above copyright +# notice and this list of conditions. +# 2. Redistributions in binary form must reproduce the above copyright +# notice and this list of conditions in the documentation and/or +# other materials provided with the distribution. +# +# Nizar Sallem on Tue Aug 24 2010 +# + +DISTNAME= liblbfgs-1.9 +PKGNAME= liblbfgs +EXTRACT_SUFX= .tar.gz +CATEGORIES= math +MASTER_SITES= http://www.chokkan.org/software/dist/ + +MAINTAINER= openrobots@laas.fr +HOMEPAGE= http://www.chokkan.org/software/liblbfgs/ +COMMENT= Limited-memory Broyden-Fletcher-Goldfarb-Shanno C port +LICENSE= mit + +USE_LANGUAGES+= c c++ + +GNU_CONFIGURE = yes + +include ../../pkgtools/libtool/depend.mk +include ../../mk/robotpkg.mk diff --git a/liblbfgs/PLIST b/liblbfgs/PLIST new file mode 100644 index 00000000..88d15fdd --- /dev/null +++ b/liblbfgs/PLIST @@ -0,0 +1,9 @@ +@comment Fri Nov 5 11:36:07 CET 2010 +include/lbfgs.h +lib/${PKGNAME}.la +share/doc/${PKGNAME}/AUTHORS +share/doc/${PKGNAME}/COPYING +share/doc/${PKGNAME}/ChangeLog +share/doc/${PKGNAME}/INSTALL +share/doc/${PKGNAME}/NEWS +share/doc/${PKGNAME}/README diff --git a/liblbfgs/depend.mk b/liblbfgs/depend.mk new file mode 100644 index 00000000..3a61cab6 --- /dev/null +++ b/liblbfgs/depend.mk @@ -0,0 +1,26 @@ +# robotpkg depend.mk for: wip/liblbfgs +# Created: Anthony Mallet on Fri, 14 Mar 2008 +# + +DEPEND_DEPTH:= ${DEPEND_DEPTH}+ +LIBLBFGS_DEPEND_MK:= ${LIBLBFGS_DEPEND_MK}+ + +ifeq (+,$(DEPEND_DEPTH)) +DEPEND_PKG+= liblbfgs +endif + +ifeq (+,$(LIBLBFGS_DEPEND_MK)) # --------------------------------------------- + +PREFER.liblbfgs?= robotpkg + +DEPEND_USE+= liblbfgs +DEPEND_ABI.liblbfgs?= liblbfgs>=1.9 +DEPEND_DIR.liblbfgs?= ../../wip/liblbfgs + +SYSTEM_SEARCH.liblbfgs=\ + include/lbfgs.h \ + lib/liblbfgs.la + +endif # LIBLBFGS_DEPEND_MK --------------------------------------------------- + +DEPEND_DEPTH:= ${DEPEND_DEPTH:+=} diff --git a/liblbfgs/distinfo b/liblbfgs/distinfo new file mode 100644 index 00000000..b8886e6a --- /dev/null +++ b/liblbfgs/distinfo @@ -0,0 +1,3 @@ +SHA1 (liblbfgs-1.9.tar.gz) = 9bd56c8b61a838badeb945399fbefbeb9b48b1db +RMD160 (liblbfgs-1.9.tar.gz) = 3d712334815daf10a1383ae7522013711284e283 +Size (liblbfgs-1.9.tar.gz) = 318447 bytes -- GitLab