# P: Number of partitions of an integer In RobinHankin/partitions: Additive Partitions of Integers

 P R Documentation

## Number of partitions of an integer

### Description

Given an integer, `P()` returns the number of additive partitions, `Q()` returns the number of unequal partitions, and `R()` returns the number of restricted partitions. Function `S()` returns the number of block partitions.

### Usage

```P(n, give = FALSE)
Q(n, give = FALSE)
R(m, n, include.zero = FALSE)
S(f, n = NULL, include.fewer = FALSE)
```

### Arguments

 `n` Integer whose partition number is desired. In function `S()`, the default of `NULL` means to return the number of partitions of any size `m` In function `R()`, the order of the decomposition `give` Boolean, with default `FALSE` meaning to return just `P(n)` or `Q(n)` and `TRUE` meaning to return `P(1:n)` or `Q(1:n)` (this option takes no extra computation) `include.zero` In `restrictedparts()`, Boolean with default `FALSE` meaning to count only partitions of n into exactly m parts; and `TRUE` meaning to include partitions of n into at most m parts (because parts of zero are included) `include.fewer` In function `blockparts()`, Boolean with default `FALSE` meaning to return partitions into exactly `n` and `TRUE` meaning to return partitions into at most `n` `f` In function `S()`, the stack vector

### Details

Functions `P()` and `Q()` use Euler's recursion formula. Function `R()` enumerates the partitions using Hindenburg's method (see Andrews) and counts them until the recursion bottoms out.

Function `S()` finds the coefficient of x^n in the generating function prod_{i=1}^{L}(1+x+x^2+...+x^(f[i])), where L is the length of `f`, using the polynom package.

All these functions return a double.

### Note

Functions `P()` and `Q()` use `unsigned long long` integers, a type which is system-dependent. For me, `P()` works for n equal to or less than 416, and `Q()` works for n less than or equal to 792. YMMV; none of the methods test for overflow, so use with care!

### Author(s)

Robin K. S. Hankin; `S()` is due to an anonymous JSS referee

### Examples

```P(10,give=TRUE)
Q(10,give=TRUE)
R(10,20,include.zero=FALSE)
R(10,20,include.zero=TRUE)

S(1:4,5)

```

RobinHankin/partitions documentation built on April 9, 2022, 12:43 p.m.