nextpow2 — Return the exponent p such that 2^p is the next power of two greater than or equal to abs(n).
nextpow2(X) applies the standard power-of-two exponent transform elementwise, returning ceil(log2(abs(X))) with zero mapped to zero. This is commonly used in FFT workflows such as 2^nextpow2(length(x)).
How nextpow2 works
nextpow2accepts real numeric scalars and tensors.- The transform is applied elementwise for array inputs.
- Zero maps to
0. - Negative values use
abs(X)before computing the exponent. Infremains infinite andNaNremainsNaN.- GPU tensors use a unary provider hook when available and otherwise gather to the host.
- The output preserves the input's scalar/tensor shape.
Examples
Compute an FFT-friendly zero-padding length
x = rand(1000, 1);
N = 2^nextpow2(length(x))Apply nextpow2 elementwise to an array
p = nextpow2([0 1 3 9])Expected output:
p = [0 0 2 4]FAQ
Why does nextpow2 return an exponent instead of the actual power of two?⌄
That matches MATLAB semantics. To get the actual power of two, use 2^nextpow2(x) for a scalar or 2.^nextpow2(X) elementwise for arrays.
How is nextpow2 used in FFT workflows?⌄
A common pattern is N = 2^nextpow2(length(x)), which computes a power-of-two transform length suitable for zero padding before an FFT.
Does nextpow2 preserve array shape?⌄
Yes. The transform is elementwise and the output has the same scalar/tensor shape as the input.
Related Math functions
Elementwise
abs · angle · complex · conj · double · exp · expm1 · factorial · gamma · hypot · imag · ldivide · log · log10 · log1p · log2 · minus · plus · pow2 · power · rdivide · real · sign · single · sqrt · times
Trigonometry
acos · acosh · asin · asinh · atan · atan2 · atanh · cos · cosd · cosh · deg2rad · rad2deg · sin · sind · sinh · tan · tand · tanh
Reduction
all · any · cummax · cummin · cumprod · cumsum · cumtrapz · diff · gradient · max · mean · median · min · nnz · prod · std · sum · trapz · var
Structure
About RunMat
RunMat is an open-source runtime that executes MATLAB-syntax code — faster, on any GPU, with no license required.
- Simulations that took hours now take minutes. RunMat automatically optimizes your math for GPU execution on Apple, Nvidia, and AMD hardware. No code changes needed.
- Start running code in seconds. Open the browser sandbox or download a single binary. No license server, no IT ticket, no setup.
- A full development environment. GPU-accelerated 2D and 3D plotting, automatic versioning on every save, and a browser IDE you can share with a link.