---
name: "std::piecewise_linear_distribution"
section: "3"
platform: "linux"
package: "gcc"
version: "16.2.1+r23+gd564253eb6c8-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/std::piecewise_linear_distribution"
---

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

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.

This distribution produces random numbers $ x, b\_0 d over each subinterval $ \[b\_i, b\_{i+1}) $ according to the probability mass function $ p(x \| b\_0, ..., b\_n, ho\_0, ..., ho\_n) = ho\_i $, for $ b\_i

**Since**

C++11

## 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.

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

Return the intervals of the distribution.

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

Returns the least upper bound value of the distribution.

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

Returns the greatest lower bound value of the distribution.

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

Generating functions.

Referenced by **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.
