Parameters representing such dependencies are fully possible to incorporate in the analysis. The idea is that different users should write their own function for a migration matrix model that they find biologically interesting. This function should take the following two arguments; a parameter vector theta, and n, the number of subpopulations, and should return a matrix. The sum of each row must be equal to or less than one. The remaining proportion, that is, , represent the sum the mutation rate and the rate of migration from the `outside world' into each subpopulation .
Both the R and S-plus version provides a way of handling so called box constraints on the parameters. For example, in the case of the steppingstone model, only parameter values in the range from 0 to 1 are allowed. When the likelihood is maximised, fitmodel needs to get this information from the function defining the migration model provided by the user. The idea is to define this information once and for all inside the declarations for the new migration model. The mechanism for achieving this is implemented somewhat differently in the R and S-plus version: