# shrinkage::ObservedSolver

Shrinkage for Rust · 0.3.0

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/observer.rs>)

```rust
pub trait ObservedSolver<P>: Solver<P>
```

Optional observation capability for single typed fits. 

<a id="methods"></a>

## Methods

<a id="method-solve_from_with_observer"></a>

### `solve_from_with_observer`

```rust
fn solve_from_with_observer<O: SolverObserver + ?Sized>(
    &self,
    problem: &P,
    initial: Option<InitialPoint<'_>>,
    observer: &mut O
) -> Result<<Self as Solver>::Fit, <Self as Solver>::Error>
```

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/observer.rs>)

Fit from an explicit optimization-scale point, or the solver's default. 

<a id="method-solve_from_with_observer-documentation-errors"></a>

#### Errors

Also rejects nonfinite parameters, a coefficient count that differs from the design, or a nonzero intercept when the problem disables it. 

<a id="method-solve_with_observer"></a>

### `solve_with_observer`

```rust
fn solve_with_observer<O: SolverObserver + ?Sized>(
    &self,
    problem: &P,
    observer: &mut O
) -> Result<<Self as Solver>::Fit, <Self as Solver>::Error>
```

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/observer.rs>)

Fit with read-only observations of accepted optimization states. 

<a id="method-solve_with_observer-documentation-errors"></a>

#### Errors

Returns the same validation, numerical, and backend errors as ordinary fitting. Failed fits need not emit a final state. 

<a id="impl-a1a1e361bdf7eb80ff4cfa2f4e0ad65dc55e057a1748c92d4bbc47fcff608d8e"></a>

## [Implementation of ObservedSolver](<a6f9ede80f6a0ee77f85e776916acea8bcaa0a49156d6cf183b3c41ae61db21a>)

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/proximal.rs>)

```rust
impl<M, D, P, V> ObservedSolver<Problem<&M, D, P>> for ProximalGradient<V> where M: RawColumns<f64> + ColumnStats<f64> + MatVecInto<V> + MatTransposeVecInto<V> + ?Sized, D: SmoothDatafit, P: ProximalPenalty, V: ProximalVector
```

<a id="impl-703293d97c638886cc526342da272fbe40fbd02656b404b9c3d7fdbab6dc069c"></a>

## [Implementation of ObservedSolver](<a6f9ede80f6a0ee77f85e776916acea8bcaa0a49156d6cf183b3c41ae61db21a>)

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/irls.rs>)

```rust
impl<M, D, P> ObservedSolver<Problem<&M, D, P>> for Irls where M: RawColumns<f64> + ColumnStats<f64> + ?Sized, D: QuadraticModelDatafit, P: CoordinatePenalty
```

<a id="impl-85f668ca84ec1ab5693f5bf8f1e6b51243ed412ffb473434f01ab402f89a9847"></a>

## [Implementation of ObservedSolver](<a6f9ede80f6a0ee77f85e776916acea8bcaa0a49156d6cf183b3c41ae61db21a>)

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/hybrid/irls.rs>)

```rust
impl<M, V, P> ObservedSolver<Problem<&M, Binomial<'_>, P>> for HybridCoordinateDescent<V> where M: RawColumns<f64> + ColumnStats<f64> + MatVecInto<V> + MatTransposeVecInto<V> + ?Sized, V: ProximalVector, P: ReducedCoordinatePenalty
```

<a id="impl-57b77277ace6e85d02648d67e220fd6dc33846057d49c04b47bd2c94186dc461"></a>

## [Implementation of ObservedSolver](<a6f9ede80f6a0ee77f85e776916acea8bcaa0a49156d6cf183b3c41ae61db21a>)

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/hybrid.rs>)

```rust
impl<M, V> ObservedSolver<Problem<&M, Gaussian<'_>, ChainFusedLasso>> for HybridCoordinateDescent<V> where M: RawColumns<f64> + ColumnStats<f64> + MatVecInto<V> + MatTransposeVecInto<V> + ?Sized, V: ProximalVector
```

<a id="impl-12f743672c62067400884e3408559fbdf00613f6cdaddbd10b8e05e7e0a99b22"></a>

## [Implementation of ObservedSolver](<a6f9ede80f6a0ee77f85e776916acea8bcaa0a49156d6cf183b3c41ae61db21a>)

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/hybrid.rs>)

```rust
impl<M, V> ObservedSolver<Problem<&M, Gaussian<'_>, ClusteredLasso>> for HybridCoordinateDescent<V> where M: RawColumns<f64> + ColumnStats<f64> + MatVecInto<V> + MatTransposeVecInto<V> + ?Sized, V: ProximalVector
```

<a id="impl-be70d8867c7f1faf85156966c4b75ac075f2819325ab868b2bd749969a04d250"></a>

## [Implementation of ObservedSolver](<a6f9ede80f6a0ee77f85e776916acea8bcaa0a49156d6cf183b3c41ae61db21a>)

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/hybrid.rs>)

```rust
impl<M, V> ObservedSolver<Problem<&M, Gaussian<'_>, Slope>> for HybridCoordinateDescent<V> where M: RawColumns<f64> + ColumnStats<f64> + MatVecInto<V> + MatTransposeVecInto<V> + ?Sized, V: ProximalVector
```

<a id="impl-2b6aa9cbdb5f1b5b53538f93f480df96e2325769eef586a369f04ef6bbd893dd"></a>

## [Implementation of ObservedSolver](<a6f9ede80f6a0ee77f85e776916acea8bcaa0a49156d6cf183b3c41ae61db21a>)

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/problem.rs>)

```rust
impl<M> ObservedSolver<Problem<&M, Gaussian<'_>, L1>> for CoordinateDescent where M: RawColumns<f64> + ColumnStats<f64> + ?Sized
```
