Skip to content
Math Study for Programming
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc/neanderthal
linear-algebra
online-textbook
.gitignore
README.adoc

README.adoc

Math Study

1. 교재

2. 유용한 참고 자료

3. 진행 일정 (총 20회, 약 10개월)

일정은 사정에 따라 추후 변경될 수 있습니다.

회차 날짜 진도

1

1/7

1.1 — 1.3

2

1/21

1.4 — 1.7

3

2/11

1.8 — 1.10

4

2/25

2.1 — 2.4

5

3/11

2.5 — 2.8

6

3/25

2.9 — 3.3

7

4/15

4.1 — 4.3

8

4/29

4.4 — 4.7

9

5/13

4.8 — 5.1

10

5/27

5.2 — 5.5

11

6/10

5.6 — 5.8

12

6/24

6.1 — 6.4

13

7/15

6.5 — 6.8

14

7/29

7.1 — 7.4

15

8/12

7.5 — 8.2

16

8/26

8.3 — 8.6

17

9/16

9.1 — 9.2

18

9/30

9.3 — 9.4

19

10/14

10.1 — 10.3

20

10/28

10.4 — 10.6

4. 수식 입력하기

mathjax를 이용해 수식을 작성해도, github에서는 수식이 제대로 보이지 않습니다만, 다음의 방식을 이용하면, 불완전하기는 하지만 수식을 정리해 공유할 수 있습니다.

4.1. Asciidoctor.js Live Preview 설치

먼저 다음의 url에 접속해, Google Chrome 브라우저에 'Asciidoctor.js Live Preview' 확장 프로그램을 설치합니다.

이 Google Chrome 확장 프로그램을 이용하면, 매 2초마다 해당 *.adoc 파일을 읽어들여 그 내용을 브라우저 창에 보여 줍니다. 이때 수식도 함께 제대로 볼 수 있습니다.

4.2. 수식의 입력

*.adoc 파일에 다음과 같이 수식을 입력합니다.

[stem]
++++
x^2 + y^2 = 100
++++

4.3. 수식 보기

위에서 작성한 *.adoc 파일을 자신의 컴퓨터의 Google Chrome 브라우저에 drag & drop 하면 수식을 제대로 볼 수 있습니다.

4.4. github에 올리기

수식의 작성이 끝나면 이 파일을 github에 올립니다. 그런데 이 파일의 내용을 github에 접속해 보면 다음과 같이 보입니다.

\$x^2 + y^2 = 100\$

따라서 수식이 제대로 그려진 모습을 보려면, 다음과 같이 github에 올라간 파일을 다시 자신의 컴퓨터로 다운로드한 후에, 해당 파일을 Google Chrome 브라우저에 drag & drop해 주어야 합니다.

$ git pull

5. Ubuntu에서 Neanderthal 라이브러리 설치/실행하기

우분투에서 미리 컴파일된 네안데르탈 라이브러리를 다음과 같이 설치한 후

$ sudo apt-get install libatlas-base-dev
project.clj
(defproject linear "0.1.0-SNAPSHOT"
  :dependencies [[org.clojure/clojure "1.9.0-alpha14"]
                 [uncomplicate/neanderthal "0.8.0"]])
src/linear/core.clj
(ns linear.core
  (:use (uncomplicate.neanderthal core native)))

(def x (dv 1 2 3))
(def y (dv 10 20 30))

(dot x y)

위의 예제 코드를 실행하면 다음과 같은 에러가 뜬다.

java: symbol lookup error: /tmp/libneanderthal-atlas-0.3.14576897804109763789.so: undefined symbol: cblas_ddot

이러한 현상은 우분투에서만 일어나며, 그것도 미리 컴파일된 ATLAS 라이브러리를 apt-get을 통해 설치했을 때에만 발생한다. 다시 말해, ATLAS 라이브러리 소스를 다운로드해 직접 컴파일하면 이런 에러가 발생하지 않는다고 한다. 그런데 http://neanderthal.uncomplicate.org/articles/getting_started.html에서 설명하는 대로 http://math-atlas.sourceforge.net/atlas_install/atlas_install.html의 내용을 참조해 직접 컴파일해 사용할 수도 있겠지만, 관련 내용이 상당히 길고 복잡해서, 실전에서 사용하는 상황이 아니고 단순히 테스트하는 용도로 쓰고자 하는 경우에는 대단히 번거로운 과정이다. 그래서 위의 에러를 해결하는 여러가지 방법을 소개하고자 한다.

5.1. lein repl

$ LD_PRELOAD=/usr/lib/liblapack_atlas.so lein repl

위와 같이 실행하면, 발생하던 에러가 사라지며 위의 예제 코드가 정상적으로 작동한다.

5.2. CIDER repl

그런데 emacs의 CIDER repl에서는 마찬가지 에러가 발생한다. 그래서 CIDER 환경에서 에러가 발생하지 않게 하려면 다음의 절차를 거쳐야 한다.

M-x setenv <return> LD_PRELOAD <return> /usr/lib/liblapack_atlas.so <return>
M-x cider-jack-in

매번 위와 같이 입력하는 것이 번거로우면 다음과 같은 방법을 이용할 수도 있다.

~/.emacs.d/init.el
(defun my-clojure-mode-init ()
  “Initializes clojure mode.”
  (interactive)

  ; ......
  (setenv “LD_PRELOAD” “/usr/lib/liblapack_atlas.so”))

(add-hook ‘clojure-mode-hook ‘my-clojure-mode-init)

5.3. ~/.profile

아주 단순무식한 방법이기는 하지만 다음과 같이 해도 문제가 해결되기는 한다.

~/.profile
export LD_PRELOAD=/usr/lib/liblapack_atlas.so
You can’t perform that action at this time.