# linfun

##### Function on a Linear Network

Create a function on a linear network.

##### Usage

`linfun(f, L)`

##### Arguments

- f
- A
`function`

in the Rlanguage. - L
- A linear network (object of class
`"linnet"`

) on which`f`

is defined.

##### Details

This creates an object of class `"linfun"`

.
This is a simple mechanism for handling a function
defined on a linear network, to make it easier to display
and manipulate.

`f`

should be a `function`

in the Rlanguage,
with formal arguments `f(x,y,seg,tp)`

or
`f(x,y,seg,tp, ...)`

where `x,y`

are
Cartesian coordinates of locations on the linear network,
`seg, tp`

are the local coordinates, and
`...`

are optional additional arguments.
The function `f`

should be vectorised: that is,
if `x,y,seg,tp`

are numeric vectors of the same length
`n`

, then `v <- f(x,y,seg,tp)`

should be a vector of length `n`

.

`L`

should be a linear network (object of class `"linnet"`

)
inside which the function `f`

is well-defined.

The result is a function `g`

in the Rlanguage which belongs to
the special class `"linfun"`

. This function
can be called as `g(X)`

where `X`

is an `"lpp"`

object,
or called as `g(x,y)`

or `g(x,y,seg,tp)`

where
`x,y,seg,tp`

are coordinates. There are several methods
for this class including `print`

, `plot`

and `as.linim`

.

##### Value

- A function in the R language.
It also belongs to the class
`"linfun"`

which has methods for`plot`

,`print`

etc.

##### See Also

`methods.linfun`

for methods applicable to
`"linfun"`

objects.

##### Examples

```
f <- linfun(function(x,y,seg,tp) { x+y }, simplenet)
plot(f)
X <- runiflpp(3, simplenet)
plot(X, add=TRUE, cex=2)
f(X)
```

*Documentation reproduced from package spatstat, version 1.41-1, License: GPL (>= 2)*