---
title: PiecewiseLinearPauliRotations (latest version)
description: API reference for qiskit.circuit.library.PiecewiseLinearPauliRotations in the latest version of qiskit
source: https://eu-de.quantum.cloud.ibm.com/docs/en/api/qiskit/qiskit.circuit.library.PiecewiseLinearPauliRotations
---

# PiecewiseLinearPauliRotations

*class* `qiskit.circuit.library.PiecewiseLinearPauliRotations(num_state_qubits=None, breakpoints=None, slopes=None, offsets=None, basis='Y', name='pw_lin')`

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/2.5/qiskit/circuit/library/arithmetic/piecewise_linear_pauli_rotations.py#L29-L288)

Bases: [`FunctionalPauliRotations`](/docs/api/qiskit/qiskit.circuit.library.FunctionalPauliRotations "qiskit.circuit.library.arithmetic.functional_pauli_rotations.FunctionalPauliRotations")

Piecewise-linearly-controlled Pauli rotations.

For a piecewise linear (not necessarily continuous) function $f(x)$, which is defined through breakpoints, slopes and offsets as follows. Suppose the breakpoints $(x_0, ..., x_J)$ are a subset of $[0, 2^n-1]$, where $n$ is the number of state qubits. Further on, denote the corresponding slopes and offsets by $a_j$ and $b_j$ respectively. Then f(x) is defined as:

$$
f(x) = \begin{cases}
0, x < x_0 \\
a_j (x - x_j) + b_j, x_j \leq x < x_{j+1}
\end{cases}
$$

where we implicitly assume $x_{J+1} = 2^n$.

**Parameters**

- **num\_state\_qubits** ([*int*](https://docs.python.org/3/library/functions.html#int) *| None*) – The number of qubits representing the state.
- **breakpoints** ([*list*](https://docs.python.org/3/library/stdtypes.html#list)*\[*[*int*](https://docs.python.org/3/library/functions.html#int)*] | None*) – The breakpoints to define the piecewise-linear function. Defaults to `[0]`.
- **slopes** ([*list*](https://docs.python.org/3/library/stdtypes.html#list)*\[*[*float*](https://docs.python.org/3/library/functions.html#float)*] | np.ndarray | None*) – The slopes for different segments of the piecewise-linear function. Defaults to `[1]`.
- **offsets** ([*list*](https://docs.python.org/3/library/stdtypes.html#list)*\[*[*float*](https://docs.python.org/3/library/functions.html#float)*] | np.ndarray | None*) – The offsets for different segments of the piecewise-linear function. Defaults to `[0]`.
- **basis** ([*str*](https://docs.python.org/3/library/stdtypes.html#str)) – The type of Pauli rotation (`'X'`, `'Y'`, `'Z'`).
- **name** ([*str*](https://docs.python.org/3/library/stdtypes.html#str)) – The name of the circuit.

## Attributes

### breakpoints

The breakpoints of the piecewise linear function.

The function is linear in the intervals `[point_i, point_{i+1}]` where the last point implicitly is `2**(num_state_qubits + 1)`.

### contains\_zero\_breakpoint

Whether 0 is the first breakpoint.

**Returns**

True, if 0 is the first breakpoint, otherwise False.

### mapped\_offsets

The offsets mapped to the internal representation.

**Returns**

The mapped offsets.

### mapped\_slopes

The slopes mapped to the internal representation.

**Returns**

The mapped slopes.

### offsets

The offsets of the piecewise linear function.

The function is linear in the intervals `[point_i, point_{i+1}]` where the last point implicitly is `2**(num_state_qubits + 1)`.

### slopes

The slopes of the piecewise linear function.

The function is linear in the intervals `[point_i, point_{i+1}]` where the last point implicitly is `2**(num_state_qubits + 1)`.

### name

Type: `str`

A human-readable name for the circuit.

**Example**

```python
from qiskit import QuantumCircuit

qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)
```

```text
my_circuit
```

## Methods

### evaluate

`evaluate(x)`

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/2.5/qiskit/circuit/library/arithmetic/piecewise_linear_pauli_rotations.py#L174-L190)

Classically evaluate the piecewise linear rotation.

**Parameters**

**x** ([*float*](https://docs.python.org/3/library/functions.html#float)) – Value to be evaluated at.

**Returns**

Value of piecewise linear function at x.

**Return type**

[float](https://docs.python.org/3/library/functions.html#float)
