You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -82,51 +80,39 @@ where `VCPKG_TOOLCHAIN_PATH` is the path to the vcpkg toolchain file.
82
80
83
81
- For 32-bit platforms, use `x86-windows` instead of `x64-windows`.
84
82
85
-
## CMake options
86
-
87
-
### SDP support
88
-
89
-
To enable SDP features, set the `-DCLARABEL_FEATURE_SDP` option to one of the following values:
90
-
-`sdp-accelerate`
91
-
-`sdp-netlib`
92
-
-`sdp-openblas`
93
-
-`sdp-mkl`
94
-
-`sdp-r`
95
-
96
-
By default, `-DCLARABEL_FEATURE_SDP=none` and SDP support is disabled.
97
-
98
-
### JSON file input/output support
99
-
100
-
To enable reading and writing of problem data to JSON files, set
101
-
`-DCLARABEL_FEATURE_SERDE=true`.
102
-
103
-
When reporting issues with the solver, it can be helpful to provide a JSON file that reproduces the problem.
104
-
105
-
### Alternative linear algebra libraries
106
-
107
-
To enable the [faer-rs](https://faer-rs.github.io/) sparse linear algebra library as an additional solver option, set `-DCLARABEL_FEATURE_FAER_SPARSE=true`.
108
-
109
-
To enable the [`MKL Pardiso`](https://www.intel.com/content/www/us/en/docs/onemkl/developer-reference-c/) sparse linear algebra library as an additional solver option, set `-DCLARABEL_FEATURE_PARDISO_MKL=true`.
83
+
## Optional solver features
110
84
111
-
The solver will dynamically link to the MKL library, which must be accessible via the system library path (e.g. on `LD_LIBRARY_PATH` on Linux).
85
+
Clarabel.rs supports a variety of build options for semidefinite program (SDP) support, JSON file read/write, 3rd party linear solvers etc. Feature options can be passed to cargo via CMake using `-DCLARABEL_RUST_FEATURES = "feature1,feature2,..."`.
112
86
113
-
Alternatively, set the `MKLROOT` environment variable to the root of the MKL installation or `MKL_PARDISO_PATH` to the location of the MKL Pardiso library (e.g. the location of `libmkl_rt.so` in Linux).
87
+
| Feature | Description |
88
+
|---------|-------------|
89
+
|`serde`| enables read/write of problem instances to .json files (enabled by default) |
90
+
|`faer-sparse`| enables "faer" as an optional direct_solve_method |
91
+
|`pardiso-mkl`| enables "mkl" as an optional direct_solve_method (Intel only) |
92
+
|`pardiso-panua`| enables "panua" as an optional direct_solve_method (requires separate license) |
93
+
|`pardiso`| enables both the "mkl" and "panua" options |
94
+
|`sdp-accelerate`| enables solution of SDPs using Apple's "accelerate" BLAS/LAPACK implementation (OSX only) |
95
+
|`sdp-mkl`| enables solution of SDPs using Intel's BLAS/LAPACK implementation (Intel only) |
96
+
|`sdp-openblas`| enables solution of SDPs using OpenBlas |
97
+
|`sdp-netlib`| enables solution of SDPs using the Netlib reference BLAS/LAPACK (not recommended) |
98
+
|`buildinfo`| adds a buildinfo function to the package that reports on the build configuration |
114
99
115
-
To enable the [`Panua Pardiso`](https://panua.ch/pardiso/) sparse linear algebra library as an additional solver option, set `-DCLARABEL_FEATURE_PARDISO_PANUA=true`. This library is not open source and requires a license.
100
+
### Linking to Pardiso
101
+
To enable dynamic linking to MKL Pardiso, the MKL Pardiso libary (e.g. `libmkl_rt.so`) must be on the system library path (e.g. on `LD_LIBRARY_PATH` on Linux). Alternatively, set the `MKLROOT` environment variable to the root of the MKL installation or `MKL_PARDISO_PATH` to the location of the library. The Intel MKL library is available as part of the Intel oneAPI toolkit and is only available on x86_64 platforms.
116
102
117
-
The solver will dynamically link to the Panua Pardiso library, which must be accessible via the system library path (e.g. on `LD_LIBRARY_PATH` on Linux).
103
+
To enable dynamic linking to Panua Pardiso, the Panua Pardiso library (e.g. `libpardiso.so`) must be on the system library path (e.g. on `LD_LIBRARY_PATH` on Linux). Alternatively, set the `PARDISO_PATH` environment variable to the location of the library.
118
104
119
-
Alternatively, set the `PARDISO_PATH` environment variable to the location of the Panua Pardiso library (e.g. the location of `libpardiso.so` in Linux).
105
+
Panua Pardiso is a commercial solver and requires a separate license.
120
106
121
-
###Unit tests
107
+
## Unit tests
122
108
123
109
By default, unit tests are disabled to reduce build time. To enable unit tests, set `-DCLARABEL_BUILD_TESTS=true` in cmake.
124
110
125
-
###Release mode
111
+
## Release mode
126
112
127
113
The solver will build the Rust source in debug mode. To build in release mode, set `-DCMAKE_BUILD_TYPE=Release` in cmake.
128
114
129
-
## Run examples
115
+
## Running examples
130
116
131
117
Examples for both C and C++ are available in `examples/c` and `examples/cpp` and can be run from the `build` directory using:
0 commit comments