LDPC 를 활용하여 논문을 쓸 일이 있어서 구현을 알아보던 도중,
토론토 대학의 Radford M. Neal 교수 페이지에서
교육 및 연구용으로 무료 배포된 시뮬레이터를 찾았다.
C언어로 구현되어 있으며, H matrix 생성, 인코드, 디코드 모두 구현되어 있다.
link:: http://www.cs.toronto.edu/~radford/ldpc.software.html
최신버전까지 올라와 있어서 최신 버전의 우분투에서 작업해도 크게 문제 없겠다 싶어 진행 중.
소스코드를 조금 수정해서 써야할 것 같아 분석하려니 답답해서
소스코드 분석하는 방법을 구글링 해봤더니
vim+cscope 를 가장 많이 선호하더라.
그래서 설치해서 사용 중
참조:: http://rucifer.tistory.com/391
설치과정 및 사용 모습 (Ubuntu 11.04 기준)
1. cscope 설치하기
$> sudo apt-get install cscope
2. 해당 프로젝트의 파일 목록 작성
LDPC$> find ./ -name '*.[ch]' -print > cscope.files
cscope.files 를 열어보면 c나 h 확장자를 가지는 파일들을 모아두었음을 알 수 있다.
3. cscope database 작성
LDPC $> cscope -i cscope.files
cscope 화면이 뜨면서 현재 폴더에 'cscope.out'이 생성됨
cscope 내에서도 위의 항목들을 찾을 수 있지만, vim과 연동시켜 쓰도록 하는 것이 목표이므로 패스
4. vim과 연동
vim 의 환경 설정 파일인 .vimrc 를 수정
--------------------------------------
"cscope setting
set csprg=/usr/bin/cscope
if filereadable("./cscope.out")
cs add cscope.out
endif
--------------------------------------
이렇게 설정해두고 vim으로 파일을 열면 vim 의 커맨드 창에서 아래와 같은 사용법으로 검색 가능하다
:cs find c|d|e|f|g|i|s|t name
- c: 이 함수를 call 하는 함수 검색
- d: 이 함수에 의해 호출되는 함수 검색
- e: 확장 정규식 사용하여 검색
- f: 파일 이름 검색
- g: 글로벌 정의 찾기
- i: include하는 파일 검색
- s: C 심볼 검색
- t: 텍스트 문자열 검색
리눅스에 KSCOPE라는 툴도 있다고 한다.
이건 Source Insight 처럼 비주얼하게 보여준다고 한다.