# WindowExponential¶

class WindowExponential : public feasst::Window

Determine windows based on an expontential factor, $$\alpha$$. The macrostate of the windows, $$m_i$$, is given by

$$m_{i+1} = \left( m_i^{\alpha} + \frac{m_{n+1}^{\alpha} - m_0^{\alpha}}{n} \right)^{1/\alpha}$$

where $$i$$ is the index of the window, ranging from $$0$$ to $$n+1$$ and $$n$$ is the number of windows. Thus, $$m_{n+1}$$ is the maximum macrostate over the entire range, while $$m_0$$ is the minimum macrostate over the entire range. For $$\alpha=1$$, the widths of all windows are the same. For $$\alpha>1$$, the widths of the windows decrease exponentially. For $$\alpha<1$$, the widths of the windows increase exponentially.

The given formula is continuous and not rounded. Instead, use Window::boundaries for handling rounding and overlap. For example, 4 windows over a macrostate range of [0, 200], $$\alpha=2$$, results in the following segments: [0, 100.00, 141.42, 173.21, 200].

Public Functions

WindowExponential(argtype args = argtype())

args:

• alpha: exponential factor (default: 1.5).

std::vector<double> segment() const

Return the continuous, segmented boundaries of the range. This should be return num + 1 boundaries, to include global min and max.