# ipfp: Function to run IPFP (iterative proportional fitting... In ipfp: Fast Implementation of the Iterative Proportional Fitting Procedure in C

## Description

Use IPFP starting from x0 to produce vector x s.t. Ax = y within tolerance. Need to ensure that x0 > 0.

## Usage

 ```1 2``` ```ipfp(y, A, x0, tol = sqrt(.Machine\$double.eps), maxit = 1000, verbose = FALSE, full = FALSE) ```

## Arguments

 `y` numeric constraint vector (length nrow) `A` constraint matrix (nrow x ncol) `x0` numeric initial vector (length ncol) `tol` numeric tolerance for IPFP; defaults to `sqrt(.Machine\$double.eps)` `maxit` integer maximum number of iterations for IPFP; defaults to 1e3 `verbose` logical parameter to select verbose output from C function `full` logical parameter to select full return (with diagnostic info)

## Value

if not full, a vector of length ncol containing solution obtained by IPFP. If full, a list containing solution (as x), the number of iterations (as iter), and the L2 norm of Ax - y (as errNorm)

## Examples

 ```1 2 3 4 5 6 7``` ```A <- matrix(c(1,0,0, 1,0,0, 0,1,0, 0,1,0, 0,0,1), nrow=3) x <- rgamma(ncol(A), 10, 1/100) y <- A %*% x x0 <- x * rgamma(length(x), 10, 10) ans <- ipfp(y, A, x0, full=TRUE) print(ans) print(x) ```

### Example output

```\$x
 1002.3407  841.9348  824.3197  710.5676 1054.0687

\$iter
 0

\$errNorm
 2.273737e-13

  922.6441  921.6313  779.0315  755.8558 1054.0687
```

ipfp documentation built on May 1, 2019, 10:13 p.m.