Metadata-Version: 2.4
Name: pyscsopt
Version: 0.1.2
Summary: A Python library for self-concordant smooth optimization (Python port of SelfConcordantSmoothOptimization.jl)
Home-page: https://github.com/adeyemiadeoye/pyscsopt
Author: Adeyemi Damilare Adeoye
Author-email: 
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy
Requires-Dist: scipy
Requires-Dist: jax
Dynamic: home-page
Dynamic: license-file
Dynamic: requires-python

# pySCSOpt: Self-Concordant Smooth Optimization in Python

<p align="center">
    <a style="text-decoration:none !important;" href="https://arxiv.org/abs/2309.01781" alt="arXiv" target="_blank"><img src="https://img.shields.io/badge/paper-arXiv-red" /></a>
    <a style="text-decoration:none !important;" href="https://opensource.org/licenses/apache-2-0" alt="License" target="_blank"><img src="https://img.shields.io/badge/license-Apache 2.0-blue.svg" /></a>
</p>

This package is a Python port of most parts of the Julia package [SelfConcordantSmoothOptimization.jl](https://github.com/adeyemiadeoye/SelfConcordantSmoothOptimization.jl). It includes:

- Proximal L-BFGS-SCORE (a limited-memory version of ProxQNSCORE of the Julia package)
- Proximal GGN-SCORE
- Proximal Gradient-SCORE
- Proximal Newton-SCORE
- Smoothing and regularization (utility) functions

## Installation

Install with pip:

```sh
pip install pyscsopt
```

## Usage

See the [`examples/`](https://github.com/adeyemiadeoye/pySCSOpt/tree/main/examples) directory for a usage example. The main entry point is the `pyscsopt` package.

For more information on how to set up problems (especially choosing regularizers), see Julia's [SelfConcordantSmoothOptimization.jl](https://github.com/adeyemiadeoye/SelfConcordantSmoothOptimization.jl).

## Tests

Run tests with:

```sh
pytest pyscsopt/test/
```

## Citation

If you use this package for research, please cite:

```bibtex
@article{adeoye2023self,
  title={Self-concordant Smoothing for Large-Scale Convex Composite Optimization},
  author={Adeoye, Adeyemi D and Bemporad, Alberto},
  journal={arXiv preprint arXiv:2309.01781},
  year={2024}
}
```
