12个版本
0.5.5 | 2020年11月26日 |
---|---|
0.5.4 | 2020年3月8日 |
0.5.1 | 2019年4月23日 |
0.5.0 | 2019年3月28日 |
0.1.0 | 2018年3月1日 |
#6 in #ipopt
每月176次下载
用于ipopt
75KB
1.5K SLoC
ipopt-sys
本软件包提供了对Ipopt非线性优化库的不安全Rust绑定。与其他大多数Ipopt包装器不同,我们链接到一个自定义的C接口,称为CNLP,该接口模拟Ipopt的C++ TNLP接口。这有两个目的
- 它帮助熟悉Ipopt C++接口的用户过渡到Rust。
- 它在后续求解之间持续Ipopt求解器实例,从而消除了对初始数据和边界的额外分配。
这也意味着您将需要一个工作的C++编译器和C++标准库实现,因为CNLP模拟器目前在使用实现中使用了它。
欢迎贡献!
构建
我们提供了从源代码构建Ipopt以及检索二进制文件的不同方法的选项。构建还需要openssl
和libclang
系统库。目前支持获取Ipopt库的方法
-
使用pkg-config查找已安装的静态或动态库。
-
手动检查系统库目录中的动态库。
-
从源代码构建Ipopt。您需要安装fortran编译器库(例如
libgfortran
)和以下线性求解器之一a. 链接MKL。(设置
MKLROOT
环境变量以指定自定义MKL安装路径或找不到系统路径时。)b. 使用MUMPS/METIS构建,并链接到系统安装的OpenBLAS库(Linux)或Accelerate框架(macOS)。如果没有找到系统BLAS/LAPACK库,则将拉取并构建默认的netlib实现。
-
从JuliaOpt下载预构建的动态Ipopt库。
这些步骤各有不同的完善程度,目前仅在Linux和macOS系统上进行测试。
MacOS
由于macOS没有附带fortran库,您需要手动安装它。使用homebrew,您可以直接使用以下命令安装gcc
或gfortran
$ brew install gcc
或
$ brew cask install gfortran
分别。由于homebrew不会自动从/usr/local/lib
链接,您需要手动使用以下命令创建符号链接
$ ln -s /usr/local/Cellar/gcc/8.3.0_2/lib/gcc/8/libgfortran.dylib /usr/local/lib/libgfortran.dylib
如果您从gcc套件中安装了libgfortran
(注意gcc版本)。否则使用以下命令创建符号链接
$ ln -s /usr/local/gfortran/lib/libgfortran.dylib /usr/local/lib/libgfortran.dylib
如果您直接安装了gfortran
。
最终,无论您选择哪种方法,libgfortran.dylib
必须通过链接器搜索路径可用。
许可证
本存储库根据以下之一进行许可
- Apache License,版本2.0(LICENSE-APACHE 或 (https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT License(LICENSE-MIT 或 https://opensource.org/licenses/MIT)
根据您的选择。
无运行时依赖
~0-4.5MB
~75K SLoC