I am learning how to work with SDEs in julia and am a bit confused:

In the documentation, both of `SDEProblem`

’s constructors take two functions f,g as their first two arguments, where f should be the drift and g the noise term. One of the constructors requires f to be of type `SDEFunction`

. That makes sense to me.

The strange part is: SDEFunction requires in its only constructor *both* the drift term f and noise term g:

```
SDEFunction{iip,specialize}(f,g; [...])
```

That does not make sense to me – if we use the first constructor of `SDEProblem`

:

`SDEProblem(f::SDEFunction,g,u0,tspan,p=NullParameters();noise=WHITE_NOISE,noise_rate_prototype=nothing)`

we would input g as both the 2nd argument of `SDEProblem`

and in the input of the first argument of `SDEProblem`

, since it is of type `SDEFunction`

.

To make things more confusing, the first-steps SDE tutorial does not provide g as parameter in the construction of the SDEProblem – contradicting the two contstructors in the documentation of SDEProblem.

```
ff = SDEFunction(f, g, analytic = f_analytic)
prob = SDEProblem(ff, u₀, (0.0, 1.0))
```

What am I not getting about this SDEFunction?