# shrinkage::Binomial

Shrinkage for Rust · 0.3.0

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

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

Bernoulli negative log likelihood with a logit link, averaged over rows. 

Responses must be finite and lie in `[0, 1]`; fractional responses represent proportions with equal observation weights. The complete linear predictor includes an optional unpenalized intercept, fitted by default. 

The predictor Hessian is diagonal with entries at most `1 / (4n)`. Consequently, for an optimization-scale design augmented with an intercept column, the coefficient gradient has Lipschitz constant at most `||[X, 1]||² / (4n)`. [`crate::ProximalGradient`](<dbf207e0ed64fdc5c0f5cc6c364e567527bca92737c69f45f608ed62e8d669d5>) uses backtracking to enforce the corresponding quadratic upper bound without computing this norm. [`crate::Irls`](<38d3c0c77c3a369dc72fa82940fe75e00e04888f78613113e69bdc12b1c8d7dd>) uses the exact diagonal predictor Hessian to construct weighted quadratic models solved by coordinate descent. 

```rust
use faer::{Col, Mat};
use shrinkage::{Binomial, Problem, ProximalGradient, Ridge};
let x = Mat::from_fn(4, 1, |i, _| i as f64);
let y = [0.0, 0.0, 1.0, 1.0];
let fit = Problem::new(&x, Binomial::new(&y), Ridge::new(0.1))
    .fit_with(&ProximalGradient::<Col<f64>>::new())?;
// Predictions are logits; apply the logistic function for probabilities.
let logits = fit.predict(&x)?;
```

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

## Inherent implementation

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

```rust
impl<'a> Binomial<'a>
```

<a id="method-fit_intercept-a0b7bcc660503c654fa6279bf5d6cceb71767755cd2f5cc046516191f93b85af"></a>

### `fit_intercept`

```rust
pub fn fit_intercept(self, enabled: bool) -> Self
```

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

Enable or disable the unpenalized fitted intercept. 

Explicit column centering can still induce an original-scale intercept. 

<a id="method-fits_intercept-a0b7bcc660503c654fa6279bf5d6cceb71767755cd2f5cc046516191f93b85af"></a>

### `fits_intercept`

```rust
pub fn fits_intercept(&self) -> bool
```

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

Whether fitting includes a free, unpenalized intercept. 

<a id="method-inverse_link-a0b7bcc660503c654fa6279bf5d6cceb71767755cd2f5cc046516191f93b85af"></a>

### `inverse_link`

```rust
pub fn inverse_link(&self, eta: f64) -> Result<f64, FitError>
```

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

Transform a predictor to a mean with the default link. 

<a id="method-inverse_link-a0b7bcc660503c654fa6279bf5d6cceb71767755cd2f5cc046516191f93b85af-documentation-errors"></a>

#### Errors

Reject nonfinite predictors or arithmetic. 

<a id="method-link-a0b7bcc660503c654fa6279bf5d6cceb71767755cd2f5cc046516191f93b85af"></a>

### `link`

```rust
pub fn link(&self, mu: f64) -> Result<f64, FitError>
```

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

Transform a mean with the default logit link. 

<a id="method-link-a0b7bcc660503c654fa6279bf5d6cceb71767755cd2f5cc046516191f93b85af-documentation-errors"></a>

#### Errors

Reject means outside the link domain or nonfinite arithmetic. 

<a id="method-new-a0b7bcc660503c654fa6279bf5d6cceb71767755cd2f5cc046516191f93b85af"></a>

### `new`

```rust
pub fn new(response: &'a [f64]) -> Self
```

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

Borrow responses, fitting an intercept by default. 

<a id="method-response-a0b7bcc660503c654fa6279bf5d6cceb71767755cd2f5cc046516191f93b85af"></a>

### `response`

```rust
pub fn response(&self) -> &[f64]
```

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

Borrow the observed responses. 

<a id="method-with_link-a0b7bcc660503c654fa6279bf5d6cceb71767755cd2f5cc046516191f93b85af"></a>

### `with_link`

```rust
pub fn with_link<L: shrinkage::Link>(
    self,
    link: L
) -> shrinkage::LinkedDatafit<Self, L>
```

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

Compose this family with a link for Fisher-scoring IRLS. 

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

## Implementation of Clone

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

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

<a id="method-clone-97dcbf797d039fb1341ae3a07e7cd33d2958bae81194f847a5f18d0ffa6b5c0d"></a>

### `clone`

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

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

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

## [Implementation of ConvexLink](<45ae855dae253e1bbc77e093683e36c85f95b348ea7c924f536c479638434084>)

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

```rust
impl ConvexLink<Binomial<'_>> for Logit
```

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

## [Implementation of ConvexLink](<45ae855dae253e1bbc77e093683e36c85f95b348ea7c924f536c479638434084>)

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

```rust
impl ConvexLink<Binomial<'_>> for Probit
```

<a id="impl-236ff580a4b8bfad3d1caa33d5b80a50f9a56b795a63faea4a24686b7901b13d"></a>

## Implementation of Copy

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

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

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

## [Implementation of CrossValidationDatafit](<98601fc9b50fbe6c319e8c6f7936102bb90fb9e942a9ce7e6cbd3d48de803c74>)

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

```rust
impl CrossValidationDatafit for shrinkage::Binomial<'_>
```

<a id="associated-type-WithResponse-c35a9dd2a59a8b3bef418f6cd6ebe7f82a70f24d6ff38e24f75851cd5205d0d4"></a>

### `WithResponse`

```rust
type WithResponse<'a> = Binomial<'a>;
```

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

<a id="method-response-c35a9dd2a59a8b3bef418f6cd6ebe7f82a70f24d6ff38e24f75851cd5205d0d4"></a>

### `response`

```rust
fn response(&self) -> &[f64]
```

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

<a id="method-supports_metric-c35a9dd2a59a8b3bef418f6cd6ebe7f82a70f24d6ff38e24f75851cd5205d0d4"></a>

### `supports_metric`

```rust
fn supports_metric(&self, metric: ValidationMetric) -> bool
```

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

<a id="method-validate_training-c35a9dd2a59a8b3bef418f6cd6ebe7f82a70f24d6ff38e24f75851cd5205d0d4"></a>

### `validate_training`

```rust
fn validate_training(&self) -> Result<(), FitError>
```

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

<a id="method-validation_metric-c35a9dd2a59a8b3bef418f6cd6ebe7f82a70f24d6ff38e24f75851cd5205d0d4"></a>

### `validation_metric`

```rust
fn validation_metric(&self) -> ValidationMetric
```

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

<a id="method-with_response-c35a9dd2a59a8b3bef418f6cd6ebe7f82a70f24d6ff38e24f75851cd5205d0d4"></a>

### `with_response`

```rust
fn with_response<'a>(&self, response: &'a [f64]) -> Binomial<'a>
```

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

<a id="impl-47f1fe634b023d05b8ca5508408f5a3a296064c0dcbb6186486a819d26c5a6e4"></a>

## [Implementation of Datafit](<9d16367f3210bbbb9bf039290cf9c94f447e51d4ea33aea446a7f30e965d873a>)

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

```rust
impl Datafit for Binomial<'_>
```

<a id="associated-type-Error-47f1fe634b023d05b8ca5508408f5a3a296064c0dcbb6186486a819d26c5a6e4"></a>

### `Error`

```rust
type Error = FitError;
```

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

<a id="method-value-47f1fe634b023d05b8ca5508408f5a3a296064c0dcbb6186486a819d26c5a6e4"></a>

### `value`

```rust
fn value(&self, predictor: &[f64]) -> Result<f64, FitError>
```

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

<a id="impl-803810e418b05ded8d18e73ded453428a36a725365dff0c1c512c6ff9640a4ec"></a>

## Implementation of Debug

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

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

<a id="method-fmt-803810e418b05ded8d18e73ded453428a36a725365dff0c1c512c6ff9640a4ec"></a>

### `fmt`

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

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

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

## [Implementation of DiagonalHessianDatafit](<0c7a483f4e622180bfcc5efab524b3377e2104e91e0d263eb5a204d4a4ab722e>)

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

```rust
impl DiagonalHessianDatafit for Binomial<'_>
```

<a id="method-hessian_diagonal-71fb897864df490d43a3eb9dc6cf60e8940f56671d35154e7b9493b00e330902"></a>

### `hessian_diagonal`

```rust
fn hessian_diagonal(
    &self,
    predictor: &[f64],
    output: &mut [f64]
) -> Result<(), FitError>
```

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

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

## [Implementation of DifferentiableDatafit](<52561c3cc593c87f940a70abf79b463b0c969e6ea2f86d60ef4f213626b07d4b>)

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

```rust
impl DifferentiableDatafit for Binomial<'_>
```

<a id="method-fits_intercept-ff611c16d18182b1432c4b1c41c9e9732008d88d16adcfc04f043ad6a0c96684"></a>

### `fits_intercept`

```rust
fn fits_intercept(&self) -> bool
```

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

<a id="method-gradient-ff611c16d18182b1432c4b1c41c9e9732008d88d16adcfc04f043ad6a0c96684"></a>

### `gradient`

```rust
fn gradient(
    &self,
    predictor: &[f64],
    output: &mut [f64]
) -> Result<(), FitError>
```

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

<a id="method-n_obs-ff611c16d18182b1432c4b1c41c9e9732008d88d16adcfc04f043ad6a0c96684"></a>

### `n_obs`

```rust
fn n_obs(&self) -> usize
```

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

<a id="impl-1946891a12da57453c4f50794b3db1eee23f0526c40c61eea399f52f24c6351e"></a>

## [Implementation of GapSafeDatafit](<a202383d9c495adaa5bfeefa681ad6cd8e1646b68a1adadc85573a29f4a95bcc>)

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

```rust
impl GapSafeDatafit for Binomial<'_>
```

<a id="method-dual_candidate-1946891a12da57453c4f50794b3db1eee23f0526c40c61eea399f52f24c6351e"></a>

### `dual_candidate`

```rust
fn dual_candidate(
    &self,
    predictor: &[f64],
    output: &mut [f64]
) -> Result<(), FitError>
```

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

<a id="method-dual_objective-1946891a12da57453c4f50794b3db1eee23f0526c40c61eea399f52f24c6351e"></a>

### `dual_objective`

```rust
fn dual_objective(&self, dual: &[f64]) -> Result<f64, FitError>
```

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

<a id="method-fenchel_gap-1946891a12da57453c4f50794b3db1eee23f0526c40c61eea399f52f24c6351e"></a>

### `fenchel_gap`

```rust
fn fenchel_gap(&self, predictor: &[f64], dual: &[f64]) -> Result<f64, FitError>
```

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

<a id="method-finalize_dual-1946891a12da57453c4f50794b3db1eee23f0526c40c61eea399f52f24c6351e"></a>

### `finalize_dual`

```rust
fn finalize_dual(&self, dual: &mut [f64]) -> Result<(), FitError>
```

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

<a id="method-strong_concavity-1946891a12da57453c4f50794b3db1eee23f0526c40c61eea399f52f24c6351e"></a>

### `strong_concavity`

```rust
fn strong_concavity(&self) -> f64
```

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

<a id="impl-02de472f0eb97959833bbf03bff07e96e85cd4b5057fb409b17af5915e700967"></a>

## Implementation of HybridPathDatafit

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

```rust
impl HybridPathDatafit for shrinkage::Binomial<'_>
```

<a id="associated-type-Outer-02de472f0eb97959833bbf03bff07e96e85cd4b5057fb409b17af5915e700967"></a>

### `Outer`

```rust
type Outer = Outer;
```

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

<a id="method-fit-02de472f0eb97959833bbf03bff07e96e85cd4b5057fb409b17af5915e700967"></a>

### `fit`

```rust
fn fit<M, V, P>(
    &self,
    design: &mut NativeDesign<M, V>,
    penalty: &P,
    solver: &HybridCoordinateDescent<V>,
    threshold: f64,
    work: (&mut Workspace<P>, &mut <Self as >::Outer)
) -> Result<Solution, FitError<<M as >::Error>> where M: RawColumns<f64> + MatVecInto<V> + MatTransposeVecInto<V>, V: ProximalVector, P: ReducedCoordinatePenalty
```

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

<a id="method-outer-02de472f0eb97959833bbf03bff07e96e85cd4b5057fb409b17af5915e700967"></a>

### `outer`

```rust
fn outer(n: usize, p: usize) -> <Self as >::Outer
```

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

<a id="method-path_deviance-02de472f0eb97959833bbf03bff07e96e85cd4b5057fb409b17af5915e700967"></a>

### `path_deviance`

```rust
fn path_deviance<P: ReducedCoordinatePenalty>(
    &self,
    _: &Workspace<P>,
    outer: &<Self as >::Outer
) -> Result<Option<f64>, FitError>
```

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

<a id="method-validate_solver-02de472f0eb97959833bbf03bff07e96e85cd4b5057fb409b17af5915e700967"></a>

### `validate_solver`

```rust
fn validate_solver<V>(
    &self,
    solver: &HybridCoordinateDescent<V>
) -> Result<f64, FitError>
```

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

<a id="impl-99015c7b77ede372098646ac004b3ffd9c9c55691c6e77e1979530f2e758ade4"></a>

## [Implementation of NullModelDatafit](<12ebbf9584faa968bb3fcbf1175e4e131dd6c7466b719c62ad9d7628739d9dac>)

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

```rust
impl NullModelDatafit for shrinkage::Binomial<'_>
```

<a id="method-deviance-99015c7b77ede372098646ac004b3ffd9c9c55691c6e77e1979530f2e758ade4"></a>

### `deviance`

```rust
fn deviance(&self, predictor: &[f64]) -> Result<Option<f64>, FitError>
```

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

<a id="method-null_intercepts-99015c7b77ede372098646ac004b3ffd9c9c55691c6e77e1979530f2e758ade4"></a>

### `null_intercepts`

```rust
fn null_intercepts(&self) -> Result<Vec<f64>, FitError>
```

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

<a id="impl-815ceb4aa0d204d07926c516ffb897234cf8d1816bf5e19eb432dee0863d6dec"></a>

## [Implementation of QuadraticModelDatafit](<31d7fcbcbb4b2013239104910cbd830452b304788def6134cdeee718040312eb>)

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

```rust
impl QuadraticModelDatafit for Binomial<'_>
```

<a id="method-working_curvature-815ceb4aa0d204d07926c516ffb897234cf8d1816bf5e19eb432dee0863d6dec"></a>

### `working_curvature`

```rust
fn working_curvature(
    &self,
    predictor: &[f64],
    output: &mut [f64]
) -> Result<(), FitError>
```

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

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

## [Implementation of SmoothDatafit](<f6f2ab3078b0ea56f174e2981b999f9be72be3c00ca00ad6485be1ed341db8c1>)

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

```rust
impl SmoothDatafit for Binomial<'_>
```

<a id="method-gap_safe-cdafeb78ba4f8f23ea3b1e3dbe06eb8e9587f5323af82083b2a01b44fd418905"></a>

### `gap_safe`

```rust
fn gap_safe(&self) -> Option<&dyn shrinkage::GapSafeDatafit>
```

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

<a id="impl-37103eccb21c85b69533ea38e032a9168951229d59f321aa15d654c8c8830a72"></a>

## Implementation of Freeze

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

<a id="impl-230cfd3aea3d9e621d38d75dfa7723b465e85581ce0729f4ef641469755a859b"></a>

## Implementation of RefUnwindSafe

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

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

## Implementation of Send

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

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

## Implementation of Sync

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

<a id="impl-74aa557f5ac0c50e81be58d1ea52468269e3ef171303ee06086d8a11e6bc3523"></a>

## Implementation of Unpin

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

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

## Implementation of UnsafeUnpin

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

<a id="impl-55b12d6f8d55c737419d58840d445d7da3714a040779d9f3da0c67362d2381c7"></a>

## Implementation of UnwindSafe

```rust
impl<'a> UnwindSafe for Binomial<'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-23474f5afd529c087488e9cf1aa66aec4dbc9dae732235521da58cdb778790f2"></a>

## [Implementation of PathDatafit](<a240aca3a782177cf6f38bc526ca602cb66b379f903b1359e5ead65f4cfc71b2>)

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

```rust
impl<D> PathDatafit for D where D: SmoothDatafit + NullModelDatafit + ?Sized
```

<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>
```
