[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
02/02: gnu: Add ceres-solver.
From: |
Ludovic Courtès |
Subject: |
02/02: gnu: Add ceres-solver. |
Date: |
Fri, 3 Jun 2016 11:55:04 +0000 (UTC) |
civodul pushed a commit to branch master
in repository guix.
commit f9940ef1e81d3f1f397157787598e7b02691f698
Author: Ludovic Courtès <address@hidden>
Date: Fri Jun 3 13:54:20 2016 +0200
gnu: Add ceres-solver.
* gnu/packages/maths.scm (ceres): New variable.
---
gnu/packages/maths.scm | 49 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 49 insertions(+)
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 7281e43..4498ea0 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -613,6 +613,55 @@ large-scale nonlinear optimization. It provides C++, C,
and Fortran
interfaces.")
(license license:epl1.0)))
+(define-public ceres
+ (package
+ (name "ceres-solver")
+ (version "1.11.0")
+ (home-page "http://ceres-solver.org/")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append home-page "ceres-solver-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0i7qkbf8g6pd8arxzldppga26ckv93y8zldsfz6wbd4n6b1nqrjd"))))
+ (build-system cmake-build-system)
+ (arguments
+ ;; TODO: Build HTML user documentation and install separately.
+ ;; XXX: Use the embedded "miniglog" as a replacement for
+ ;; <https://github.com/google/glog>. TODO: Use Glog when it's available.
+ '(#:configure-flags '("-DMINIGLOG=ON"
+ "-DBUILD_EXAMPLES=OFF"
+ "-DBUILD_SHARED_LIBS=ON")
+
+ #:phases (modify-phases %standard-phases
+ (add-before 'configure 'set-library-directory
+ (lambda _
+ ;; Install libraries to lib/, not lib64/.
+ (substitute* "internal/ceres/CMakeLists.txt"
+ (("set\\(LIB_SUFFIX \"64\"\\)")
+ "set(LIB_SUFFIX \"\")"))
+ #t)))))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("eigen" ,eigen)
+ ("blas" ,openblas)
+ ("lapack" ,lapack)
+ ("suitesparse" ,suitesparse)
+ ("gflags" ,gflags)))
+ (synopsis "C++ library for solving large optimization problems")
+ (description
+ "Ceres Solver is a C++ library for modeling and solving large,
+complicated optimization problems. It is a feature rich, mature and
+performant library which has been used in production since 2010. Ceres Solver
+can solve two kinds of problems:
address@hidden
address@hidden non-linear least squares problems with bounds constraints;
address@hidden general unconstrained optimization problems.
address@hidden enumerate\n")
+ (license license:bsd-3)))
+
;; For a fully featured Octave, users are strongly recommended also to install
;; the following packages: texinfo, less, ghostscript, gnuplot.
(define-public octave