我在哪里可以找到GCC的数学程序?数学函数如何工作?

问题描述 投票:3回答:3

晚安。我是数学学士学位,并且正在研究log()和系列。我确实想看看GCC如何计算所有这些东西,这将对我有很大帮助,在math.h中没有任何内容。我已经读过它。我疯狂地试图找到GCC如何使用有史以来最快的方法来计算对数和平方根。我没有下载源代码,但找不到数学例程在哪里。

https://github.com/gcc-mirror/gcc

我只想看看,我根本不是一个好的程序员,我的事是数学。

c math gcc discrete-mathematics
3个回答
4
投票

数学函数是C标准库的一部分,而GCC只是使用它们。如果要查看源代码,则可以从官方的glibc website(对于GNU C库版本,这是最常用的版本之一)下载源代码,也可以使用an online code browser。例如[the code for log()

由于您说的不是程序员,所以我怀疑您会理解GNU C标准库。这是数十年来的优化和兼容性调整的结果,并且代码非常复杂。 我建议改为看看log()。源代码更简洁,注释更多。 musl C Library,这是Here's the log() function

最后,GCC或C库也没有“有史以来最快的方法”来计算此类函数。 C库的目标不是提供每个数学函数尽可能快的实现,而是提供足够好的实现,同时仍具有足够的可移植性以在多种体系结构上使用,因此它们确实非常快,但很可能“有史以来最快”。在最佳情况下,如果CPU支持快速的内置硬件数学运算(例如log()),则某些数学函数甚至可以简化为一条CPU指令。


0
投票
[[0]之类的函数是数学库的一部分,通常称为“ libm”。标准C库的实现通常带有libm的实现,因此您所寻找的内容很可能在glibc中。您可以在以下位置找到glibc中日志的实现:all the files regarding mathematical functions

0
投票
看看netlib fdlibm

这是log的,它具有人类中很多C函数的实现(在https://github.com/JuliaMath/openlibm/blob/master/src/e_log.c之后。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.