Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

describe cones interface and scripts more in docs #724

Merged
merged 1 commit into from
May 30, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/make.jl
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ makedocs(
"Modeling" => "modeling.md",
"Solving" => "solving.md",
"Examples" => "examples.md",
"Scripts" => "scripts.md",
"Benchmarks" => "benchmarks.md",
"API reference" => [
"api/hypatia.md",
"api/cones.md",
Expand Down
2 changes: 1 addition & 1 deletion docs/src/api/cones.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ WSOSInterpEpiNormEucl
WSOSInterpEpiNormOne
```

### PosSemidefTriSparse helpers
### Helpers for PosSemidefTriSparse

```@docs
PSDSparseImpl
Expand Down
10 changes: 10 additions & 0 deletions docs/src/benchmarks.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Benchmarking scripts

In the [benchmarks folder](https://github.com/chriscoey/Hypatia.jl/tree/master/benchmarks), we have scripts for running performance benchmarks on instances derived from our examples.
See [Examples](@ref) for descriptions of our examples, and see the [examples folder](https://github.com/chriscoey/Hypatia.jl/tree/master/examples) for the instances, which are generated on-the-fly.
The two types of benchmarks we run are:
- natural versus extended formulations, for a selection of examples; see [natvsext](https://github.com/chriscoey/Hypatia.jl/tree/master/benchmarks/natvsext),
- selected algorithmic options for the stepping procedures; see [stepper](https://github.com/chriscoey/Hypatia.jl/tree/master/benchmarks/stepper).
We also provide scripts to analyze the raw results output from the run scripts.
See the READMEs for simple instructions for running these scripts on your machines.
Each run script typically takes several days to complete if running all examples, and the analysis scripts only take seconds.
9 changes: 6 additions & 3 deletions docs/src/cones.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,14 @@ CurrentModule = Hypatia.Cones
Hypatia's [`Cones`](@ref) module specifies a generic cone interface that allows defining new proper cones as subtypes of [`Cone`](@ref).
This requires implementing cone oracles as methods for the new cone type; see [Cone oracles](@ref).
The required oracles are:
- an initial interior point inside the cone,
- a feasibility test, which checks whether a given point is in the interior of the cone,
- gradient and Hessian evaluations for a logarithmically homogeneous self-concordant barrier function for the cone.
- an initial interior point inside the cone; see [`set_initial_point!`](@ref),
- a feasibility test, which checks whether a given point is in the interior of the cone; see [`is_feas`](@ref),
- gradient and Hessian evaluations for a logarithmically homogeneous self-concordant barrier (LHSCB) function for the cone; see [`grad`](@ref) and [`hess`](@ref).

Additional optional oracles can be specified to improve speed and numerical performance.
Defining a new cone automatically defines its dual cone (through the `use_dual` option) also.
See Hypatia's predefined cones in the [cones folder](https://github.com/chriscoey/Hypatia.jl/tree/master/src/Cones) for examples of how to implement a new cone type and efficient oracles.
The implementations of the [`HypoPowerMean`](@ref) cone (which uses a primal LHSCB) and the [`WSOSInterpNonnegative`](@ref) cone (which uses a dual LHSCB) are fairly typical.

## Predefined cones

Expand Down
1 change: 0 additions & 1 deletion docs/src/scripts.md

This file was deleted.