# Modulo operator in brms

In exploring non-linear regression in brms I tried to fit a particular function to the data:

``````x <- seq(1,64)/64
prior1 <- prior(normal(1, 3), nlpar = "alpha") + prior(normal(1, 1.5), nlpar = "beta")
form = bf(y ~ alpha * (  (( beta*x + .5)  %% 1 )  - .5) , alpha + beta ~ 1, nl = TRUE)
fit1 <- brm(formula = form, data = Df, prior = prior1)
``````

## However, I get an error from the compiler about the modulo operator. How to use the modulo operator in a brms formula?

``````33:     for (n in 1:N) {
34:       // compute non-linear predictor values
35:       mu[n] = nlp_alpha[n] * (((nlp_beta[n] * C_1[n] + 0.5) %  % 1) - 0.5);
^
36:     }
``````

We don’t have the modulo operator defined in Stan, but it is implemented as the `fmod` function. So you’ll just need to change your formula definition to use `fmod(numerator, denominator)` instead of `numerator %% denominator`:

``````form <- bf(y ~ alpha * (fmod(beta*x + 0.5, 1)  - 0.5),
alpha + beta ~ 1,
nl = TRUE)
``````

thanks!