혹시 리눅스 커널에서 log10을 계산하는 라이브러리나 함수있나요?

바인딩의 이미지

리눅스 커널에서 log10을 계산을 해야 하는데...

검색을 좀 해보았더니...

그리 안나오더군요.. 나온것도 링크가 끊겨있고.

직접만드는 방법도 있지만...
지금 log10 만드는게 문제가 아닌지라
여기다 질문남겨봅니다.

커널에서 사용가능하게 구현된 소스(C소스)나 라이브러리가 있다면
좀 알려주세요.

그럼 고견 부탁드려요.

slomo의 이미지

echo 'l(10)' | bc -l

====
No one asks you for change or directions.
-- Slo-Mo, J. Krokidas

====
No one asks you for change or directions.
-- Slo-Mo, J. Krokidas

feanor의 이미지

리눅스에서 log 10을 계산하는 게 아니고, 리눅스 "커널"에서 log 10을 계산하는 것입니다.

slomo의 이미지

앗 죄송. 이거라도.. 죄송한 마음에..

* http://www.linuxforums.org/forum/linux-kernel/40760-how-use-logarithmic-log-function-kernel-code.html

====
No one asks you for change or directions.
-- Slo-Mo, J. Krokidas

====
No one asks you for change or directions.
-- Slo-Mo, J. Krokidas

slomo의 이미지

awk 'BEGIN{print log(10);}'
perl -e 'print log(10)'
====
No one asks you for change or directions.
-- Slo-Mo, J. Krokidas

====
No one asks you for change or directions.
-- Slo-Mo, J. Krokidas

무한포옹의 이미지

원래 질문하신 분께서는 10을 밑으로 하는
상용로그를 의도하신 거 같습니다.
애석하지만 bc의 l(), awk의 log(), perl의 log()
모두 e를 밑으로 하는 자연로그(ln)입니다.

게다가 "커널"이라고 명시되어 있네요.

-------------------------------
== warning 대부분 틀린 얘기입니다 warning ===

slomo의 이미지

어차피 원래 질문하신 내용과 관계없는 내용입니다만. log(x)/log(10) 같은 식으로 써주면 상용로그값도 계산되죠..

====
No one asks you for change or directions.
-- Slo-Mo, J. Krokidas

====
No one asks you for change or directions.
-- Slo-Mo, J. Krokidas

바인딩의 이미지

그렇지 않나요?

feanor의 이미지

log10이 부동소수점으로 필요한 것이 아니라, 정수를 10진법으로 출력할 때의 자리수만 필요한 것이라면, 계속 10으로 나눠서 간단하게 계산할 수 있습니다.

예를 들어,

int number_of_digits(int n) {
    int l = 0;
    while (n) {
        n = n / 10;
        l++;
    }
    return l;
}
palsuet의 이미지

그냥 math.h를 include하고 log10 쓰면 되지 않나요? 커널 내부에서만 쓰는 수학 라이브러리가 따로 있을거 같지 않은데...
--
feel the gravity

feel the gravity

경의 이미지

http://kerneltrap.org/node/6405

정수로 emulation하는 것은 FP 하드웨어 쓰는 것보다 더 느리기 대문에 userspace에서 하는 것이 좋다네요.

익명사용자의 이미지

kernel안에서 task switching속도를 높이려고(?) 커널안에서는 FP의 레지스터를 관리하지 않는다고 들었습니다...
혹시 필요가 있으면 user space에서 계산하거나 굳이 필요하다면, 많은 계산이 필요없다면 배열로 table을 미리 만들어두고 사용하는것도 좋습니다.

바인딩의 이미지

댓글 주신 분들 감사합니다.

그냥 어플로 넘기려고 합니다.
소수점을 생략하자니...
오차가 너무 큰거 같아요...

좋은 말씀 감사합니다.

그리고 하신 말씀중에서...

userspace에서 하라는 말은 어플로 넘겨서 해라라는 말인가요?
아니면..
userspace에서 뭔가를 계산 할 수있는 기능이 커널에 있는것인가요?
궁금해지네요. ^^

ganadist의 이미지

userspace == 어플리케이션에서 계산하라는 뜻입니다.

----
데스크탑 프로그래머를 꿈꾸는 임베디드 삽질러

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.