# shrinkage::SolverStep

Shrinkage for Rust · 0.3.0

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

```rust
pub struct SolverStep<'a>
```

A borrowed optimization state, valid only during an observer callback. 

Coefficients and the intercept use the solver's optimization scale. Returned fits back-transform these parameters using their preprocessing metadata. Iteration counts use the selected solver's documented units. Inner callbacks count IRLS sweeps, Gaussian hybrid block visits, or binomial hybrid quadratic iterations. Rejected line-search trials are never emitted. 

<a id="fields"></a>

## Fields

<a id="field-coefficients"></a>

### `coefficients`

```rust
pub coefficients: &'a [f64]
```

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

Optimization-scale coefficients, without an allocation or copy. 

<a id="field-intercept"></a>

### `intercept`

```rust
pub intercept: f64
```

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

Optimization-scale unpenalized intercept. 

<a id="field-iteration"></a>

### `iteration`

```rust
pub iteration: usize
```

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

Solver iteration count at this state. 

<a id="field-kind"></a>

### `kind`

```rust
pub kind: StepKind
```

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

Operation that produced this state. 

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

## Implementation of Clone

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

```rust
impl<'a> Clone for SolverStep<'a>
```

<a id="method-clone-c9ad0a91ee1699384e75d9ea9e34fcda0aa871bf81c27d61f7873841b74b1980"></a>

### `clone`

```rust
fn clone(&self) -> Self
```

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

<a id="impl-382debad1dcdbcab0f6ace493f70c420619b1b445e27484a18075fc363766da5"></a>

## Implementation of Copy

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

```rust
impl<'a> Copy for SolverStep<'a>
```

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

## Implementation of Debug

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

```rust
impl<'a> Debug for SolverStep<'a>
```

<a id="method-fmt-2a0193bb53759e5f85cc712bed6762415af0fd5d60e04bea94f07260c35807c9"></a>

### `fmt`

```rust
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
```

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

<a id="impl-075d38fbec4a4b52358fea04df48d880876cb13f39f4310e27a6be717200e194"></a>

## Implementation of Freeze

```rust
impl<'a> Freeze for SolverStep<'a>
```

<a id="impl-6e35362cb16dca738422a07e014cf7c21f26ffb090c8cb325af62f2d1b048493"></a>

## Implementation of RefUnwindSafe

```rust
impl<'a> RefUnwindSafe for SolverStep<'a>
```

<a id="impl-8d8519ea9fc6b264eae635d37c0a3b2319287c77f644dcb0026d6afacf78357c"></a>

## Implementation of Send

```rust
impl<'a> Send for SolverStep<'a>
```

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

## Implementation of Sync

```rust
impl<'a> Sync for SolverStep<'a>
```

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

## Implementation of Unpin

```rust
impl<'a> Unpin for SolverStep<'a>
```

<a id="impl-867f9650a20a5054c582c661d68618bf095d54ac3c0053add57629a0dc51a286"></a>

## Implementation of UnsafeUnpin

```rust
impl<'a> UnsafeUnpin for SolverStep<'a>
```

<a id="impl-71e779f8f7e1dd8c43d5dc00c5d1cfe452afeb50c0c8f82c5d8ac937be474d0d"></a>

## Implementation of UnwindSafe

```rust
impl<'a> UnwindSafe for SolverStep<'a>
```

<a id="impl-1e5682dc18e03c648aa9b125290c107c1e8d96ce8a179a8532e4057da4daf0cd"></a>

## Implementation of Any

```rust
impl<T> Any for T where T: 'static + ?Sized
```

<a id="impl-6c0b25c2c92cdb117802d9c0a4c70afc9a8bfb0da875bc6e66191e2349fcdf3f"></a>

## Implementation of Borrow

```rust
impl<T> Borrow<T> for T where T: ?Sized
```

<a id="impl-796e80d926348273a22b04d8e84f510693b11c06ec57c3c3e2e8c1524094a85c"></a>

## Implementation of BorrowMut

```rust
impl<T> BorrowMut<T> for T where T: ?Sized
```

<a id="impl-8360e4092e7ec4a05a26dd304cd739398f0cacc50c8d08dd5be0223d1a08d02e"></a>

## Implementation of ByRef

```rust
impl<T> ByRef<T> for T
```

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

## Implementation of CastableFrom

```rust
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT where ST: ?Sized, DT: ?Sized
```

<a id="impl-97b65e7dfc44b5ecaa495a3a19fe737914a1e9f8532200cf8f46191314e7d777"></a>

## Implementation of CastableFrom

```rust
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT where ST: ?Sized, DT: ?Sized
```

<a id="impl-86d7da2bfd1140cc1675dfe6a975e6a2762338ab32731152da0723858ef3aa81"></a>

## Implementation of CloneToUninit

```rust
impl<T> CloneToUninit for T where T: Clone
```

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

## Implementation of From

```rust
impl<T> From<T> for T
```

<a id="impl-5adf6ca1830f30fbbac655ab8ff394d254954df7ededc7cc833c72fdc87d6f00"></a>

## Implementation of Imply

```rust
impl<T, U> Imply<T> for U where T: ?Sized, U: ?Sized
```

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

## Implementation of Into

```rust
impl<T, U> Into<U> for T where U: From<T>
```

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

## Implementation of IntoEither

```rust
impl<T> IntoEither for T
```

<a id="impl-5655b1ef858b34a584cb80104f040c8a4063ced0d281311a0833ed12aefde86e"></a>

## Implementation of Pointable

```rust
impl<T> Pointable for T
```

<a id="impl-8cc2aa01198fc9fa44f08b889f62988d70d2a7f4f0f11f4666d4c08bdaddb22a"></a>

## Implementation of Read

```rust
impl<T> Read<Exclusive, BecauseExclusive> for T where T: ?Sized
```

<a id="impl-5ea09131039c62dd92b119d480a35c7e2b33d2b81dccf0b849f6b1f19f4bda24"></a>

## Implementation of Same

```rust
impl<T> Same for T
```

<a id="impl-7ee6ff38d6674f5edfe4734359062c2a67a572cff5899a89704764822b931c7f"></a>

## Implementation of SupersetOf

```rust
impl<SS, SP> SupersetOf<SS> for SP where SS: SubsetOf<SP>
```

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

## Implementation of ToOwned

```rust
impl<T> ToOwned for T where T: Clone
```

<a id="impl-83960135d00d98080c95a08867729696e36811280c2dd9cf34c1b4fe21c81e18"></a>

## Implementation of TryFrom

```rust
impl<T, U> TryFrom<U> for T where U: Into<T>
```

<a id="impl-1cc495bcaa5112ffb304e7f0de674feca391fd97f47bec86033a9225b72ac05c"></a>

## Implementation of TryInto

```rust
impl<T, U> TryInto<U> for T where U: TryFrom<T>
```
