math_sqrt

math_sqrt是lua库函数math.sqrt的具体实现。math_sqrt的声明如下:

static int math_sqrt (lua_State *L);

注意调用math.sqrt需要你保证传入的参数是非负数(传入负数,一般会得到**-nan**,即not a number)。


math_sqrt的实现:

static int math_sqrt (lua_State *L) {
    lua_pushnumber(L, l_mathop(sqrt)(luaL_checknumber(L, 1)));
    return 1;
}

math_sqrt本身并没有什么特殊的处理,直接调用C标准库函数sqrt(sqrt函数本身的实现比较复杂,甚至不同平台有不同实现,非常空闲时可以去看看sqrt的实现(-:)求参数的平方根,并将求得的结果入栈。返回1表示,math_sqrt返回一个值。