수치연산쪽으로 C++로 설명한 책이나 사이트 있나요?

불량도ㅐㅈㅣ의 이미지

수치연산 해볼까 생각 중인데요..

저희과 교수님중 한 분이 공대생이라면 Fortran을 해보는게 좋다고 말씀하셨지만

새로 언어 배우기도 귀찮고 해서리...

C++로 구현한 거였으면 좋겠다는 생각이 드는군요.

혹시 아시는 분 정보 좀...^^

saxboy의 이미지

Numerical Recipe 시리즈를 빼놓으실수야... C++버전도 있었는지는 모르겠네요. 별 상관이야 없겠지만. 8-)

불량도ㅐㅈㅣ의 이미지

saxboy wrote:
Numerical Recipe 시리즈를 빼놓으실수야... C++버전도 있었는지는 모르겠네요. 별 상관이야 없겠지만. 8-)

Numerical Recipe in C

Numerical Recipe in C++

Numerical Recipe in Fortran

아마존에 검색하니 요렇게 있네요...

C++에 대한 평가는 안 좋네요.

나머지 C,Fortran은 별 많던데...흠...

그냥 C로 할까나???

문근영 너무 귀여워~~

익명 사용자의 이미지

:?
Numerical Recipe in C++은 정말 비추천입니다.
이 시리즈는 포트란용이 제일 좋고 다음 C용은 쓸만하고 C++용은 누더기(?)에 가깝습니다.
이유는 에초 처음 포트란용으로 프로그램이나 알고리듬이 구현됐었고 이것을 C로 컨버전시켜서 그렇습니다. C로 컨버전시킬 당시는 약간의 문제들이 있었지만 그런데로 쓸만했죠. 하지만 C++용은 C로 컨버전한 것을 다시 C++로 바꾸어놓으니 아주 누더기가 되어버렸습니다.

수치해석은 포트란이 제일 좋습니다. 이유는 해보면 압니다. 속도가 비교가 안됩니다. 코드 크기는 C의 절반도 안되구요.

doldori의 이미지

oonumerics.org에 가면 많은 정보가 있습니다.

비행소년의 이미지

C++ 수치 연산이면 Blitz가 빠질 수 없죠. :D

http://oonumerics.org/blitz/

그러고 보니 Blitz도 http://oonumerics.org의 일부군요.

높이 날다 떨어지면.
아푸다 ㅡ,.ㅡ

yielding의 이미지

수치해석에 C++가 적합하지 않다는 이야기는 이제 옛말입니다.

C++가 속도가 않좋았던 이유가 temporary object와 이것의 불필요한 복사가 주된 이유였는데
1. expression template
2. tempalte metaprogramming
3. andrei의 mojo protocol

등등의 기법들을 이용한 라이브러리들의 성능을 살펴보면 Fortran에 전혀 떨어지지 않죠. 게다가 C++의 High-Level abstraction은 그대로 다 가지고 가는 장점도 있고요.

Life rushes on, we are distracted

freezm7의 이미지

yielding wrote:
수치해석에 C++가 적합하지 않다는 이야기는 이제 옛말입니다.

C++가 속도가 않좋았던 이유가 temporary object와 이것의 불필요한 복사가 주된 이유였는데
1. expression template
2. tempalte metaprogramming
3. andrei의 mojo protocol

등등의 기법들을 이용한 라이브러리들의 성능을 살펴보면 Fortran에 전혀 떨어지지 않죠. 게다가 C++의 High-Level abstraction은 그대로 다 가지고 가는 장점도 있고요.

More Effective C++ 내용 중에
Item 19 : 임시 객체의 원류를 정확히 이해하자.
Item 20 : 반환값 최적화가 가능하게 하자.
를 읽어 보시면, 임시 객체에 의한 속도 저하를 상당 부분 개선하실 수 있습니다.

결국 최적화를 통해 불필요한 임시 객체들만 없애 준다면,
C++ 로 짜는게 느릴 이유는 전혀 없겠죠.

즐겁게 살아 볼까나~*

익명 사용자의 이미지

불량도ㅐㅈㅣ wrote:

수치연산 해볼까 생각 중인데요..
...

혹시 아시는 분 정보 좀...^^


http://netlib.org/
MPI나 PVM같은 유형의 라이브러리의 성능테스트는 대체로 수치연산으로
행해집니다.
이 사이트에가서 여기저기 들여다 보다보면, 훌륭한 라이브러리가 대박납니다.
HPC관련의 성능테스트는 대체로 수치연산이지요.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.