Accelerating the pace of engineering and science

# numlib::pi

Number of primes up to a given bound

### Use only in the MuPAD Notebook Interface.

This functionality does not run in MATLAB.

## Syntax

```numlib::pi(x)
```

## Description

numlib::pi(x) returns the number of primes not exceeding x.

If the argument x is a real number (an integer, rational, or floating-point number), then the number of primes below x is returned. If x is a complex number, numlib::pi stops with an error. For every other kind of arithmetical expression x, an unevaluated call is returned.

numlib::pi becomes slightly faster if the internal prime number table is large. ifactor(PrimeLimit) displays the limit of the internal prime number table; it can be set by the user via the command line flag -L.

Internally, a fast kernel function with constant memory consumption is used for the computation.

## Examples

### Example 1

There are two primes less or equal 3:

`numlib::pi(3)`

### Example 2

Also larger inputs can be handled fast:

`numlib::pi(150000000)`

### Example 3

Floating point arguments are allowed, too.

`numlib::pi(28.72)`

 x

## Return Values

Non-negative integer or an unevaluated call to numlib::pi

## Algorithms

A Lehmer-type algorithm is used, with no precomputed sieve array and no remember tables. In contrast to the algorithm in "Computing π: The Meissel-Lehmer method", this means constant memory consumption, at the price of slowness.

## References

[1] Lagarias, J.C., V.S. Miller, and A.M. Odlyzko. "Computing π: The Meissel-Lehmer method", Math. Comp., Vol. 44, No. 170 (1985), pp. 537-560