Jacobian elliptic function argument – Mathematica Stack Exchange

I have a C++ code that computes jacobian elliptic sn, cn and dn. This code is from GSL library.

void elipticjacobi(double u, double m, double * sn, double * cn, double * dn) {
    if(fabs(m) > 1.0) {
        *sn = 0.0;
        *cn = 0.0;
        *dn = 0.0;
        //error code
    }
    ....
}

If I calculate sn(2,0.2) with my code, and if I calculate sn(2,0.2) with WolframAlpha I am getting the same result and the result is 0.953667.

The elliptic function second argument must be |m|<1 but if I calculate sn(2,4) with WolframAlpha I am getting -0,29.

What could be the problem?