Skip to content
SCS - the splitting conic solver - for Ruby
Ruby
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
ext/scs
lib
test
vendor
.gitignore
.gitmodules
.travis.yml
CHANGELOG.md
Gemfile
LICENSE.txt
README.md
Rakefile
appveyor.yml
scs.gemspec

README.md

SCS

SCS - the splitting conic solver - for Ruby

🔥 Supports many different problem types

Build Status Build status

Installation

Add this line to your application’s Gemfile:

gem 'scs'

If installation fails, you may need to install dependencies.

Getting Started

Prep the problem

data = {a: [[1], [-1]], b: [1, 0], c: [-1]}
cone = {q: [], l: 2}

And solve it

solver = SCS::Solver.new
solver.solve(data, cone)

Settings

Default values shown

solver.solve(data, cone, {
  normalize: true,            # heuristic data rescaling
  scale: 1.0,                 # if normalized, rescales by this factor
  rho_x: 1e-3,                # x equality constraint scaling
  max_iters: 5000,            # maximum iterations to take
  eps: 1e-5,                  # convergence tolerance
  alpha: 1.5,                 # relaxation parameter
  cg_rate: 2.0,               # for indirect, tolerance goes down like (1/iter)^cg_rate
  verbose: true,              # write out progress
  warm_start: false,          # warm start
  acceleration_lookback: 10,  # memory for acceleration
  write_data_filename: nil    # filename to write data if set
})

Direct vs Indirect

SCS comes with two solvers: a direct solver which uses a cached LDL factorization and an indirect solver based on conjugate gradients. For the indirect solver, use:

SCS::Solver.new(indirect: true)

Dependencies

BLAS and LAPACK are required for SCS.

sudo apt-get install libblas-dev liblapack-dev

On Heroku, use the heroku-apt-buildpack.

Resources

History

View the changelog

Contributing

Everyone is encouraged to help improve this project. Here are a few ways you can help:

To get started with development:

git clone --recursive https://github.com/ankane/scs.git
cd scs
bundle install
bundle exec rake compile
bundle exec rake test
You can’t perform that action at this time.