RunMat
GitHub

All functions

CategoryMath: Elementwise
Auto GPU

RunMat automatically offloads this function to the GPU when it estimates a speedup, without requiring explicit gpuArray inputs.

Learn more about Auto GPU →

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

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

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

Signal

blackman · conv · conv2 · deconv · filter · hamming · hann · sawtooth · sinc · square

Rounding

ceil · fix · floor · mod · rem · round

Factor

chol · eig · lu · qr · svd

Solve

cond · det · inv · linsolve · norm · pinv · rank · rcond

Fft

fft · fft2 · fftshift · ifft · ifft2 · ifftshift

Interpolation

interp1 · interp2 · pchip · ppval · spline

Ode

ode15s · ode23 · ode45

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 for free

Write code or describe what you want to compute. The sandbox is free, no account required.