# shrinkage::LinkedDatafit

Shrinkage for Rust · 0.3.0

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

```rust
pub struct LinkedDatafit<F, L>
```

A response family composed with a link for Fisher-scoring IRLS. 

Construct with [`Gaussian::with_link`](<8f2aa89a892fb708e0e09c276910730b91ed3cb252a10cacd0a458cfbe59be13#method-with_link-0b074d9b24f8edeb8b9431d43d7a6c2cfec2566ddb64b80af9b07e0752705c0a>) or [`Binomial::with_link`](<cabade7e6bb5cb30e1afe92b7012a4d0f67c7bec0235c94ef5bca1dda3c635f8#method-with_link-a0b7bcc660503c654fa6279bf5d6cceb71767755cd2f5cc046516191f93b85af>). Explicit IRLS paths require only [`Link`](<b8cca71c162ec648303732b0a3d9f0a7d17daee56916c57ec982c034c675738f>); automatic paths additionally require [`ConvexLink`](<45ae855dae253e1bbc77e093683e36c85f95b348ea7c924f536c479638434084>). Exact Hessians require [`TwiceDifferentiableLink`](<c41eda899b5b627e2c29e844d131210faac5c4524216344b1c755cf9bbe86f99>). The original family constructors retain their specialized solver capabilities. 

Automatic paths require convexity of the particular family-link pairing: 

```rust
use shrinkage::{Gaussian, Logit, NullModelDatafit};
fn automatic<D: NullModelDatafit>(_: D) {}
automatic(Gaussian::new(&[0.2, 0.8]).with_link(Logit));
```

A composed link does not acquire proximal solver capabilities implicitly: 

```rust
use shrinkage::{Binomial, Probit, SmoothDatafit};
fn proximal<D: SmoothDatafit>(_: D) {}
proximal(Binomial::new(&[0.0, 1.0]).with_link(Probit));
```

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

## Inherent implementation

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

```rust
impl<'a, L: Link> LinkedDatafit<shrinkage::Binomial<'a>, L>
```

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

### `fit_intercept`

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

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

Enable or disable the free, unpenalized intercept. 

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

### `fits_intercept`

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

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

Whether fitting includes an unpenalized intercept. 

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

### `response`

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

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

Borrow the observed responses. 

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

## Inherent implementation

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

```rust
impl<'a, L: Link> LinkedDatafit<shrinkage::Gaussian<'a>, L>
```

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

### `fit_intercept`

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

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

Enable or disable the free, unpenalized intercept. 

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

### `fits_intercept`

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

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

Whether fitting includes an unpenalized intercept. 

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

### `response`

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

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

Borrow the observed responses. 

<a id="impl-832e29ea35ae9f7d785c397125b3cb325cf9aa124ff468404d73cb04c38ee390"></a>

## Inherent implementation

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

```rust
impl<F, L: Link> LinkedDatafit<F, L>
```

<a id="method-inverse_link-832e29ea35ae9f7d785c397125b3cb325cf9aa124ff468404d73cb04c38ee390"></a>

### `inverse_link`

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

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

Transform a predictor to a response mean using the selected link. 

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

#### Errors

Reject invalid predictors, link configuration, or arithmetic. 

<a id="method-link-832e29ea35ae9f7d785c397125b3cb325cf9aa124ff468404d73cb04c38ee390"></a>

### `link`

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

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

Transform a mean to a predictor using the selected link. 

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

#### Errors

Reject invalid means, link configuration, or arithmetic. 

<a id="impl-534330156ac6f42e16540f75bad7a2b92538d1cf38b9bae043d2121fee0c539f"></a>

## Inherent implementation

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

```rust
impl<F, L> LinkedDatafit<F, L>
```

<a id="method-link_function-534330156ac6f42e16540f75bad7a2b92538d1cf38b9bae043d2121fee0c539f"></a>

### `link_function`

```rust
pub fn link_function(&self) -> &L
```

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

Borrow the configured link. 

<a id="method-with_link-534330156ac6f42e16540f75bad7a2b92538d1cf38b9bae043d2121fee0c539f"></a>

### `with_link`

```rust
pub fn with_link<T: Link>(self, link: T) -> LinkedDatafit<F, T>
```

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

Replace the link, preserving the response and intercept setting. 

<a id="impl-4fe5442e314fc5ca8a2e6c1c36881870086217ebad5586c726ea9246b02be109"></a>

## Inherent implementation

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

```rust
impl<L: Link> LinkedDatafit<shrinkage::Binomial<'_>, L>
```

<a id="impl-3361c3ac636c80f69ab21a201e7648f463ef9258b46c0fcd1d365feef41230f3"></a>

## Implementation of Clone

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

```rust
impl<F: core::clone::Clone, L: core::clone::Clone> Clone for LinkedDatafit<F, L>
```

<a id="method-clone-3361c3ac636c80f69ab21a201e7648f463ef9258b46c0fcd1d365feef41230f3"></a>

### `clone`

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

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

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

## Implementation of Copy

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

```rust
impl<F: core::marker::Copy, L: core::marker::Copy> Copy for LinkedDatafit<F, L>
```

<a id="impl-01753b69915e67b8be3ef8b78c655be91611ded8453da0e0fa9b5b2148149c3e"></a>

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

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

```rust
impl<L: Link> Datafit for LinkedDatafit<shrinkage::Binomial<'_>, L>
```

<a id="associated-type-Error-01753b69915e67b8be3ef8b78c655be91611ded8453da0e0fa9b5b2148149c3e"></a>

### `Error`

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

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

<a id="method-value-01753b69915e67b8be3ef8b78c655be91611ded8453da0e0fa9b5b2148149c3e"></a>

### `value`

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

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

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

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

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

```rust
impl<L: Link> Datafit for LinkedDatafit<shrinkage::Gaussian<'_>, L>
```

<a id="associated-type-Error-cc9242c80e0b8860c722a490b233149ab083ffb4f402664e77d46df1ccb9f140"></a>

### `Error`

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

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

<a id="method-value-cc9242c80e0b8860c722a490b233149ab083ffb4f402664e77d46df1ccb9f140"></a>

### `value`

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

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

<a id="impl-4d9a41b69891f447bb194201773667833e32d476890eab9a82ce9ae2683fb7dd"></a>

## Implementation of Debug

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

```rust
impl<F: core::fmt::Debug, L: core::fmt::Debug> Debug for LinkedDatafit<F, L>
```

<a id="method-fmt-4d9a41b69891f447bb194201773667833e32d476890eab9a82ce9ae2683fb7dd"></a>

### `fmt`

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

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

<a id="impl-029e2cdb5d376bbbb9f66074313c42baa711c1eefca378befa754f9849971950"></a>

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

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

```rust
impl<L: TwiceDifferentiableLink> DiagonalHessianDatafit for LinkedDatafit<shrinkage::Binomial<'_>, L>
```

<a id="method-hessian_diagonal-029e2cdb5d376bbbb9f66074313c42baa711c1eefca378befa754f9849971950"></a>

### `hessian_diagonal`

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

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

<a id="impl-215c1edbca12272de832ba3729c69e5b5fb079e4eacab0ec01f04d824f5bef6e"></a>

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

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

```rust
impl<L: TwiceDifferentiableLink> DiagonalHessianDatafit for LinkedDatafit<shrinkage::Gaussian<'_>, L>
```

<a id="method-hessian_diagonal-215c1edbca12272de832ba3729c69e5b5fb079e4eacab0ec01f04d824f5bef6e"></a>

### `hessian_diagonal`

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

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

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

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

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

```rust
impl<L: Link> DifferentiableDatafit for LinkedDatafit<shrinkage::Binomial<'_>, L>
```

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

### `fits_intercept`

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

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

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

### `gradient`

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

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

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

### `n_obs`

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

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

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

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

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

```rust
impl<L: Link> DifferentiableDatafit for LinkedDatafit<shrinkage::Gaussian<'_>, L>
```

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

### `fits_intercept`

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

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

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

### `gradient`

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

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

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

### `n_obs`

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

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

<a id="impl-0bac582721d181d754ed4090f439fd14ea946fbf5ad992729cbed425af01c1bc"></a>

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

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

```rust
impl<'a, L: ConvexLink<shrinkage::Binomial<'a>>> NullModelDatafit for LinkedDatafit<shrinkage::Binomial<'a>, L>
```

<a id="method-deviance-0bac582721d181d754ed4090f439fd14ea946fbf5ad992729cbed425af01c1bc"></a>

### `deviance`

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

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

<a id="method-null_intercepts-0bac582721d181d754ed4090f439fd14ea946fbf5ad992729cbed425af01c1bc"></a>

### `null_intercepts`

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

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

<a id="impl-634894904c9b60f006abb5640c6be9b2e21e47bd89d209c89d96bd1a46edaa91"></a>

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

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

```rust
impl<'a, L: ConvexLink<shrinkage::Gaussian<'a>>> NullModelDatafit for LinkedDatafit<shrinkage::Gaussian<'a>, L>
```

<a id="method-deviance-634894904c9b60f006abb5640c6be9b2e21e47bd89d209c89d96bd1a46edaa91"></a>

### `deviance`

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

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

<a id="method-null_intercepts-634894904c9b60f006abb5640c6be9b2e21e47bd89d209c89d96bd1a46edaa91"></a>

### `null_intercepts`

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

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

<a id="impl-82db59ab9ffd0805e2b1940f575a78a50ddfa3bc535dcc8332ed14aa190eabd5"></a>

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

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

```rust
impl<L: Link> QuadraticModelDatafit for LinkedDatafit<shrinkage::Binomial<'_>, L>
```

<a id="method-initial_intercept-82db59ab9ffd0805e2b1940f575a78a50ddfa3bc535dcc8332ed14aa190eabd5"></a>

### `initial_intercept`

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

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

<a id="method-valid_predictor-82db59ab9ffd0805e2b1940f575a78a50ddfa3bc535dcc8332ed14aa190eabd5"></a>

### `valid_predictor`

```rust
fn valid_predictor(&self, eta: &[f64]) -> bool
```

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

<a id="method-working_curvature-82db59ab9ffd0805e2b1940f575a78a50ddfa3bc535dcc8332ed14aa190eabd5"></a>

### `working_curvature`

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

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

<a id="impl-92b695677efd37c38e56b33cdf2a1ffcd7a6c8485717ba56798a9e29da100c0d"></a>

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

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

```rust
impl<L: Link> QuadraticModelDatafit for LinkedDatafit<shrinkage::Gaussian<'_>, L>
```

<a id="method-initial_intercept-92b695677efd37c38e56b33cdf2a1ffcd7a6c8485717ba56798a9e29da100c0d"></a>

### `initial_intercept`

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

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

<a id="method-valid_predictor-92b695677efd37c38e56b33cdf2a1ffcd7a6c8485717ba56798a9e29da100c0d"></a>

### `valid_predictor`

```rust
fn valid_predictor(&self, eta: &[f64]) -> bool
```

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

<a id="method-working_curvature-92b695677efd37c38e56b33cdf2a1ffcd7a6c8485717ba56798a9e29da100c0d"></a>

### `working_curvature`

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

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

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

## Implementation of Freeze

```rust
impl<F, L> Freeze for LinkedDatafit<F, L> where F: Freeze, L: Freeze
```

<a id="impl-44b1621071e6ac8bb86656e52a25d7db62629caaa99ca96cfcf62626b3a83aed"></a>

## Implementation of RefUnwindSafe

```rust
impl<F, L> RefUnwindSafe for LinkedDatafit<F, L> where F: RefUnwindSafe, L: RefUnwindSafe
```

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

## Implementation of Send

```rust
impl<F, L> Send for LinkedDatafit<F, L> where F: Send, L: Send
```

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

## Implementation of Sync

```rust
impl<F, L> Sync for LinkedDatafit<F, L> where F: Sync, L: Sync
```

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

## Implementation of Unpin

```rust
impl<F, L> Unpin for LinkedDatafit<F, L> where F: Unpin, L: Unpin
```

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

## Implementation of UnsafeUnpin

```rust
impl<F, L> UnsafeUnpin for LinkedDatafit<F, L> where F: UnsafeUnpin, L: UnsafeUnpin
```

<a id="impl-843375d90d000ae94716e8be16176cdb7e1c6d85b3abdb56e6cf6a7b59a22d68"></a>

## Implementation of UnwindSafe

```rust
impl<F, L> UnwindSafe for LinkedDatafit<F, L> where F: UnwindSafe, L: UnwindSafe
```

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