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

## 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

 ```1 2 3 4``` ```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

 ```1 2 3 4 5 6``` ```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 Feb. 18, 2021, 2:26 a.m.