[DOC] Documentation for builtin pnmf function
Closes #960.
diff --git a/dev/docs/builtins-reference.md b/dev/docs/builtins-reference.md
index 7f306bf..e72251d 100644
--- a/dev/docs/builtins-reference.md
+++ b/dev/docs/builtins-reference.md
@@ -31,6 +31,7 @@
* [`lmCG`-Function](#lmcg-function)
* [`lmpredict`-Function](#lmpredict-function)
* [`mice`-Function](#mice-function)
+ * [`pnmf`-Function](#pnmf-function)
* [`scale`-Function](#scale-function)
* [`sigmoid`-Function](#sigmoid-function)
* [`steplm`-Function](#steplm-function)
@@ -386,6 +387,39 @@
[dataset, singleSet] = mice(F, cMask, iter = 3, complete = 3, verbose = FALSE)
```
+## `pnmf`-Function
+
+The `pnmf`-function implements Poisson Non-negative Matrix Factorization (PNMF). Matrix `X` is factorized into
+two non-negative matrices, `W` and `H` based on Poisson probabilistic assumption. This non-negativity makes the
+resulting matrices easier to inspect.
+
+### Usage
+```r
+pnmf(X, rnk, eps = 10^-8, maxi = 10, verbose = TRUE)
+```
+
+### Arguments
+| Name | Type | Default | Description |
+| :------ | :------------- | -------- | :---------- |
+| X | Matrix[Double] | required | Matrix of feature vectors. |
+| rnk | Integer | required | Number of components into which matrix X is to be factored. |
+| eps | Double | `10^-8` | Tolerance |
+| maxi | Integer | `10` | Maximum number of conjugate gradient iterations. |
+| verbose | Boolean | TRUE | If TRUE, 'iter' and 'obj' are printed.|
+
+
+### Returns
+| Type | Description |
+| :------------- | :---------- |
+| Matrix[Double] | List of pattern matrices, one for each repetition. |
+| Matrix[Double] | List of amplitude matrices, one for each repetition. |
+
+### Example
+```r
+X = rand(rows = 50, cols = 10)
+[W, H] = pnmf(X = X, rnk = 2, eps = 10^-8, maxi = 10, verbose = TRUE)
+```
+
## `scale`-Function
The scale function is a generic function whose default method centers or scales the column of a numeric matrix.