---
name: "std::piecewise_linear_distribution"
section: "3cxx"
platform: "linux"
package: "libstdc++-12-doc"
version: "12.4.0-5"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/std::piecewise_linear_distribution/3cxx"
---

# std::piecewise\_linear\_distribution(3cxx)

A piecewise\_linear\_distribution random number distribution.

## NAME

std::piecewise\_linear\_distribution\< \_RealType \> - A piecewise\_linear\_distribution random number distribution.

## SYNOPSIS

`#include <random>`

### Classes

struct **param\_type**\

### Public Types

**typedef** \_RealType **result\_type**\

### Public Member Functions

template\<**typename** **\_InputIteratorB** , **typename** **\_InputIteratorW** \> **piecewise\_linear\_distribution** (**\_InputIteratorB** **\_\_bfirst**, **\_InputIteratorB** **\_\_bend**, **\_InputIteratorW** **\_\_wbegin**)\
 **piecewise\_linear\_distribution** (const **param\_type** &\_\_p)\
 template\<**typename** \_Func \> **piecewise\_linear\_distribution** (**initializer\_list**\< \_RealType \> **\_\_bl**, \_Func **\_\_fw**)\
 template\<**typename** \_Func \> **piecewise\_linear\_distribution** (size\_t **\_\_nw**, \_RealType **\_\_xmin**, \_RealType **\_\_xmax**, \_Func **\_\_fw**)\
 template\<**typename** **\_ForwardIterator** , **typename** **\_UniformRandomNumberGenerator** \> **void** **\_\_generate** (**\_ForwardIterator** \_\_f, **\_ForwardIterator** \_\_t, **\_UniformRandomNumberGenerator** &**\_\_urng**)\
 template\<**typename** **\_ForwardIterator** , **typename** **\_UniformRandomNumberGenerator** \> **void** **\_\_generate** (**\_ForwardIterator** \_\_f, **\_ForwardIterator** \_\_t, **\_UniformRandomNumberGenerator** &**\_\_urng**, const **param\_type** &\_\_p)\
 template\<**typename** **\_UniformRandomNumberGenerator** \> **void** **\_\_generate** (**result\_type** \*\_\_f, **result\_type** \*\_\_t, **\_UniformRandomNumberGenerator** &**\_\_urng**, const **param\_type** &\_\_p)\
 **std::vector**\< double \> **densities** () const\
 Return a vector of the probability densities of the distribution.  **std::vector**\< \_RealType \> **intervals** () const\
 Return the intervals of the distribution.  **result\_type** **max** () const\
 Returns the least upper bound value of the distribution.  **result\_type** **min** () const\
 Returns the greatest lower bound value of the distribution.  template\<**typename** **\_UniformRandomNumberGenerator** \> **result\_type** **operator()** (**\_UniformRandomNumberGenerator** &**\_\_urng**)\
 Generating functions.  template\<**typename** **\_UniformRandomNumberGenerator** \> **result\_type** **operator()** (**\_UniformRandomNumberGenerator** &**\_\_urng**, const **param\_type** &\_\_p)\
 **param\_type** **param** () const\
 Returns the parameter set of the distribution.  **void** **param** (const **param\_type** &**\_\_param**)\
 Sets the parameter set of the distribution.  **void** **reset** ()\

### Friends

template\<**typename** **\_RealType1** , **typename** \_CharT , **typename** \_Traits \> **std::basic\_ostream**\< \_CharT, \_Traits \> & **operator\<\<** (**std::basic\_ostream**\< \_CharT, \_Traits \> &**\_\_os**, const **std::piecewise\_linear\_distribution**\< **\_RealType1** \> &\_\_x)\
 Inserts a piecewise\_linear\_distribution random number distribution `__x` into the output stream `__os`.  bool **operator==** (const **piecewise\_linear\_distribution** &**\_\_d1**, const **piecewise\_linear\_distribution** &**\_\_d2**)\
 Return true if two piecewise linear distributions have the same parameters.  template\<**typename** **\_RealType1** , **typename** \_CharT , **typename** \_Traits \> **std::basic\_istream**\< \_CharT, \_Traits \> & **operator\>\>** (**std::basic\_istream**\< \_CharT, \_Traits \> &**\_\_is**, **std::piecewise\_linear\_distribution**\< **\_RealType1** \> &\_\_x)\
 Extracts a piecewise\_linear\_distribution random number distribution `__x` from the input stream `__is`.

## Detailed Description

### template\<typename \_RealType = double\>

class std::piecewise\_linear\_distribution\< \_RealType \>"A piecewise\_linear\_distribution random number distribution.

The formula for the piecewise linear probability mass function is

## Member Typedef Documentation

### template\<typename \_RealType = double\> typedef \_RealType std::piecewise\_linear\_distribution\< \_RealType \>::result\_type

The type of the range of the distribution.

## Member Function Documentation

### template\<typename \_RealType = double\> std::vector\< double \> std::piecewise\_linear\_distribution\< \_RealType \>::densities () const` [inline]`

Return a vector of the probability densities of the distribution.

References **std::vector\< \_Tp, \_Alloc \>::empty()**.

### template\<typename \_RealType = double\> std::vector\< \_RealType \> std::piecewise\_linear\_distribution\< \_RealType \>::intervals () const` [inline]`

Return the intervals of the distribution.

References **std::vector\< \_Tp, \_Alloc \>::empty()**.

### template\<typename \_RealType = double\> result\_type std::piecewise\_linear\_distribution\< \_RealType \>::max () const` [inline]`

Returns the least upper bound value of the distribution.

References **std::vector\< \_Tp, \_Alloc \>::back()**, and **std::vector\< \_Tp, \_Alloc \>::empty()**.

### template\<typename \_RealType = double\> result\_type std::piecewise\_linear\_distribution\< \_RealType \>::min () const` [inline]`

Returns the greatest lower bound value of the distribution.

References **std::vector\< \_Tp, \_Alloc \>::empty()**, and **std::vector\< \_Tp, \_Alloc \>::front()**.

### template\<typename \_RealType = double\> template\<typename \_UniformRandomNumberGenerator \> result\_type std::piecewise\_linear\_distribution\< \_RealType \>::operator() (\_UniformRandomNumberGenerator & \_\_urng)` [inline]`

Generating functions.

References **std::piecewise\_linear\_distribution\< \_RealType \>::operator()()**.

Referenced by **std::piecewise\_linear\_distribution\< \_RealType \>::operator()()**.

### template\<typename \_RealType = double\> param\_type std::piecewise\_linear\_distribution\< \_RealType \>::param () const` [inline]`

Returns the parameter set of the distribution.

### template\<typename \_RealType = double\> void std::piecewise\_linear\_distribution\< \_RealType \>::param (const param\_type & \_\_param)` [inline]`

Sets the parameter set of the distribution.

**Parameters**

*\_\_param* The new parameter set of the distribution.

### template\<typename \_RealType = double\> void std::piecewise\_linear\_distribution\< \_RealType \>::reset ()` [inline]`

Resets the distribution state.

## Friends And Related Symbol Documentation

### template\<typename \_RealType = double\> template\<typename \_RealType1 , typename \_CharT , typename \_Traits \> std::basic\_ostream\< \_CharT, \_Traits \> & operator\<\< (std::basic\_ostream\< \_CharT, \_Traits \> & \_\_os, const std::piecewise\_linear\_distribution\< \_RealType1 \> & \_\_x)` [friend]`

Inserts a piecewise\_linear\_distribution random number distribution `__x` into the output stream `__os`.

**Parameters**

*\_\_os* An output stream. \
 *\_\_x* A piecewise\_linear\_distribution random number distribution.

**Returns**

The output stream with the state of `__x` inserted or in an error state.

### template\<typename \_RealType = double\> bool operator== (const piecewise\_linear\_distribution\< \_RealType \> & \_\_d1, const piecewise\_linear\_distribution\< \_RealType \> & \_\_d2)` [friend]`

Return true if two piecewise linear distributions have the same parameters.

### template\<typename \_RealType = double\> template\<typename \_RealType1 , typename \_CharT , typename \_Traits \> std::basic\_istream\< \_CharT, \_Traits \> & operator\>\> (std::basic\_istream\< \_CharT, \_Traits \> & \_\_is, std::piecewise\_linear\_distribution\< \_RealType1 \> & \_\_x)` [friend]`

Extracts a piecewise\_linear\_distribution random number distribution `__x` from the input stream `__is`.

**Parameters**

*\_\_is* An input stream. \
 *\_\_x* A piecewise\_linear\_distribution random number generator engine.

**Returns**

The input stream with `__x` extracted or in an error state.

## Author

Generated automatically by Doxygen for libstdc++ from the source code.
