2015-06-12 49 views
-3

我想知道C函数库如何实现sqrt()函数。我得到了/usr/include中的头文件math.h。但是,实际的实施在哪里?我正在做一个数值计算项目,并希望看到math.h中所有可用函数的实现。C库的实现在哪里?

+5

“谷歌搜索没有给出任何好结果” - 不知何故,我不相信。对不起。 –

+1

另请参见[ceil()和floor()]的实现(http://stackoverflow.com/questions/6208488/implementation-of-ceil-and-floor) –

+0

在linux上:'man sqrt'告诉我要链接'-lm',意思是'libm',是libmath的缩写。通常这些是glibc(GNU libc)的一部分,它是大多数Linux发行版中的“标准”C库。默认情况下,您的发行版不可能为您的计算机上安装的源代码提供源代码,而是预编译的共享库。要获得源代码,最好的方法是转到图书馆的网页。 Google'GNU C Library',你会发现。 – Jite

回答

1

对于您在this SO thread中的查询,您将得到一个通用答案。

但是,具体到这个问题,得到数学相关的功能,你需要搜索里面glibclibm源代码。这存在于名为math的目录中。

在线浏览版本为。

+0

GNU C库** do **包含数学函数,如果需要,您只需将它们专门链接起来。 – Jite

+0

@Jite是的,我更新了措辞。写完后我意识到错误的意思。谢谢。 –

+0

那么源代码仍然只是在一个存储库中,所以你的措辞仍然有点混乱。你更有可能在数学文件夹中寻找数学函数(尽管它可能并不是很明显的东西在哪里实现)。 – Jite