2015-06-12 4 views
-3

Я хочу знать, как C библиотека реализует функцию sqrt(). Я получил файл заголовка math.h в /usr/include. Но где фактическая реализация? Я делаю численный проект расчета и хотел бы увидеть реализации всех функций, доступных в 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), которая является «стандартной» библиотекой C в большинстве дистрибутивов Linux. Не похоже, что ваш дистрибутив по умолчанию предоставляет источник для него, установленный на вашем компьютере, но предварительно скомпилированную общую библиотеку. Чтобы получить исходный код, лучше всего перейти на веб-страницу библиотеки. Google 'GNU C Library', и вы найдете. – Jite

ответ

1

У вас будет общий ответ для вашего запроса в this SO thread.

Однако, чтобы быть специфическими для этого вопроса, чтобы Получить математику соответствующих функций, вам нужно искать libm исходный код внутри glibc. Это находится в каталоге с именем math.

Онлайн-версия для просмотра - .

+0

Библиотека GNU C ** do ** содержит математические функции, вам просто нужно связать их, если необходимо. – Jite

+0

@Jite Да, я обновил формулировку. После написания я понял неправильный смысл. Благодарю. –

+0

Ну, исходный код все еще находится в одном репозитории, поэтому ваша формулировка все еще немного запутанна. Скорее всего, вы будете искать математические функции в математической папке (хотя может быть и не понятно, где именно реализованы вещи). – Jite