# shrinkage::DiagonalHessianDatafit

Shrinkage for Rust · 0.3.0

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

```rust
pub trait DiagonalHessianDatafit: DifferentiableDatafit
```

A twice-differentiable loss whose predictor Hessian is diagonal. 

Off-diagonal Hessian entries must be zero. Entries use exactly the same normalization as [`DifferentiableDatafit::gradient`](<52561c3cc593c87f940a70abf79b463b0c969e6ea2f86d60ef4f213626b07d4b#method-gradient>), including row averaging. Entries may be negative; this capability does not imply convexity or provide the positive working curvature required by [`crate::Irls`](<38d3c0c77c3a369dc72fa82940fe75e00e04888f78613113e69bdc12b1c8d7dd>). 

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

## Methods

<a id="method-hessian_diagonal"></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.rs>)

Write finite, signed predictor Hessian entries into reusable storage. 

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

#### Errors

Reject invalid data, predictor values, dimensions, or arithmetic. Output is unspecified after an error. 

<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="impl-de2bcffa75b6d69db096dcbb54f13b7ac2568e530c2297a572fb8468e09bdec8"></a>

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

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

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

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