RunMat
GitHub

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 in RunMat

  • nextpow2 accepts 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.
  • Inf remains infinite and NaN remains NaN.
  • 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.

These functions work well alongside nextpow2. Each page has runnable examples you can try in the browser.

fft, pow2, length

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.

Getting started · Benchmarks · Pricing

Try RunMat — free, no sign-up

Start running MATLAB code immediately in your browser.