ROPTLIB: An Object-Oriented C plus plus Library for Optimization on Riemannian Manifolds

被引:29
|
作者
Huang, Wen [1 ]
Absil, P-A [2 ]
Gallivan, Kyle A. [3 ]
Hand, Paul [1 ]
机构
[1] Rice Univ, Dept Computat & Appl Math, 6100 Main St,MS 134, Houston, TX 77005 USA
[2] Univ Louvain, ICTEAM Inst, Batiment Euler P13, B-1348 Louvain La Neuve, Belgium
[3] Florida State Univ, Dept Math, 208 Love Bldg,1017 Acad Way, Tallahassee, FL 32306 USA
来源
关键词
Riemannian optimization; non-convex optimization; orthogonal constraints; symmetric positive definite matrices; low-rank matrices; Matlab interface; Julia interface; UNITARY MATRIX CONSTRAINT; STEEPEST DESCENT; COMPLETION; REPRESENTATION; ALGORITHMS; FRAMEWORK;
D O I
10.1145/3218822
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Riemannian optimization is the task of finding an optimum of a real-valued function defined on a Riemannian manifold. Riemannian optimization has been a topic of much interest over the past few years due to many applications including computer vision, signal processing, and numerical linear algebra. The substantial background required to successfully design and apply Riemannian optimization algorithms is a significant impediment for many potential users. Therefore, multiple packages, such as Manopt (in Matlab) and Pymanopt (in Python), have been developed. This article describes ROPTLIB, a C++ library for Riemannian optimization. Unlike prior packages, ROPTLIB simultaneously achieves the following goals: (i) it has user-friendly interfaces in Matlab, Julia, and C++; (ii) users do not need to implement manifold-and algorithm-related objects; (iii) it provides efficient computational time due to its C++ core; (iv) it implements state-of-the-art generic Riemannian optimization algorithms, including quasi-Newton algorithms; and (v) it is based on object-oriented programming, allowing users to rapidly add new algorithms and manifolds.
引用
收藏
页数:21
相关论文
共 50 条
  • [21] On the implementation of Fril plus plus for object-oriented logic programming with uncertainty and fuzziness
    Cao, TH
    Rossiter, JM
    Martin, TP
    Baldwin, JF
    TECHNOLOGIES FOR CONSTRUCTING INTELLIGENT SYSTEMS 2: TOOLS, 2002, 90 : 393 - 406
  • [22] recon plus plus : A Concurrent, Object-Oriented API for Statistical Image Reconstruction
    Rannou, Fernando R.
    Giha, Cristian
    Iriarte, Ana
    2014 IEEE NUCLEAR SCIENCE SYMPOSIUM AND MEDICAL IMAGING CONFERENCE (NSS/MIC), 2014,
  • [23] Advance object-oriented features for C/C++ - Dynace shows that C plus plus isn't the only choice
    McBride, B
    DR DOBBS JOURNAL, 1997, 22 (08): : 78 - +
  • [24] Object-oriented message-passing with TPO plus
    Grundmann, T
    Ritt, M
    Rosenstiel, W
    EURO-PAR 2000 PARALLEL PROCESSING, PROCEEDINGS, 2000, 1900 : 1081 - 1084
  • [25] The Teaching Innovation and Research of Object-Oriented Program Design based on C plus
    Zheng, Bigeng
    Wang, Heng
    Zheng, Quanxin
    PROCEEDINGS OF THE 2017 3RD INTERNATIONAL CONFERENCE ON ECONOMICS, SOCIAL SCIENCE, ARTS, EDUCATION AND MANAGEMENT ENGINEERING (ESSAEME 2017), 2017, 119 : 2258 - 2263
  • [26] BUILDING COMMUNICATION SOFTWARE: A PROJECT-BASED APPROACH FOR TEACHING C plus plus OBJECT-ORIENTED PROGRAMMING
    Chen, Yen-Lin
    Liu, Chuan-Ming
    Chiang, Chuan-Yen
    Yuan, Shyan-Ming
    Wang, Jenq-Haur
    INTERNATIONAL JOURNAL OF INNOVATIVE COMPUTING INFORMATION AND CONTROL, 2013, 9 (08): : 3415 - 3436
  • [27] SMI plus plus object-oriented framework for designing and implementing distributed control systems
    Franek, B
    Gaspar, C
    IEEE TRANSACTIONS ON NUCLEAR SCIENCE, 2005, 52 (04) : 891 - 895
  • [28] Object-oriented hybrid systems of coalgebras plus monoid actions
    Jacobs, B
    THEORETICAL COMPUTER SCIENCE, 2000, 239 (01) : 41 - 95
  • [29] AN OBJECT-ORIENTED CLASS LIBRARY FOR C++ PROGRAMS
    GORLEN, KE
    SOFTWARE-PRACTICE & EXPERIENCE, 1987, 17 (12): : 899 - 922
  • [30] Bee plus plus : An Object-Oriented, Agent-Based Simulator for Honey Bee Colonies
    Betti, Matthew
    LeClair, Josh
    Wahl, Lindi M.
    Zamir, Mair
    INSECTS, 2017, 8 (01)