LAPACK — Linear Algebra PACKage

홈페이지: http://www.netlib.org/lapack/

가장 대표적이고 가잘 빠르다고 소문난 포트란 90 버전으로 작성된 선형 대수 라이브러리.
많은 선형대수 라이브러리들이 LAPACK을 참조하고 있다고함.
LAPACK은 C 바인딩도 자체적으로 지원하며, BLAS 라이브러가 내장되어있음.

LAPACK is written in Fortran 90 and provides routines for solving systems of simultaneous linear equations, least-squares solutions of linear systems of equations, eigenvalue problems, and singular value problems. The associated matrix factorizations (LU, Cholesky, QR, SVD, Schur, generalized Schur) are also provided, as are related computations such as reordering of the Schur factorizations and estimating condition numbers. Dense and banded matrices are handled, but not general sparse matrices. In all areas, similar functionality is provided for real and complex matrices, in both single and double precision.

아래의 코드는 MinGW에서 테스트한 코드이며, 컴파일 방법은 아래와 같음.

gcc sample.c -llapack -lblas -lm -lgfortran

아래는 테스트 코드.

#include<stdio.h>
#define N 3

double A[N*N];
double x[N];

int main(void)
{
  static int i;
  static long int n=N,inc=1,info,piv[N];

  A[0]=1.; A[1]=3.; A[2]=1.;
  A[3]=1.; A[4]=1.;A[5]=-2.;
  A[6]=1.; A[7]=-3.;A[8]=-5.;
  x[0]=3.; x[1]=1.; x[2]=-6.;

  printf("N = %d\n",N);
  dgesv_(&n,&inc,A,&n,piv,x,&n,&info);
  for(i=0; i<N; ++i) printf("%lf\n", x[i]);
  return(0);
}

다운로드: 3.4.0

 

Armadillo – C++ linear algebra library

홈페이지: http://arma.sourceforge.net/

C++ 용 매트릭스 연산 라이브러리. 사용하기 쉽고 빠른것이 장점이다.

Armadillo is an open-source C++ linear algebra library (matrix maths) aiming towards a good balance between speed and ease of use. Integer, floating point and complex numbers are supported, as well as a subset of trigonometric and statistics functions.

이런 느낌의 코드.

mat A = randu(size,size);
mat B = randu(size,size);
...
mat Z = zeros(size,size);

for(int i=0; i<N; ++i)
  Z = A+B;  //  or Z = A+B+C ... etc

다운로드: 2.4.2

 

연신률, 항복강도, 인장강도,항복점

연신률
재료를 잡아 당길때 늘어난 비율.
길이가 1cm인 봉을 잡아당길때 길이 1.1cm가 늘러났다면 0.1/1 이 연신률이 됨.

항복강도
재료를 잡아당긴후 다시 놓으면 원래의 상태로 회복되는데 어느 한계점을 넘으면 원상태로 회복이 안됨.
재료가 원상태로 복구되지 않을시점의 힘을 항복강도라함.

인장강도
항복강도후 재료는 버티다 파괴가 일어남.
이 파괴가 일어날때 가해진 힘을 인장강도라함.

항복점
재료에 힘을 가했을때 영구 변형이 일어 나기 시작하는 시점의 힘.

 

설치된 프로그램 정보의 레지스트리 저장 경로

출처: http://www.usboffice.kr/zbxe/?document_srl=185374&mid=com_anyqna&sort_index=regdate&order_type=desc

제어판의 프로그램 추가/제거의 리스트는 레지스트리에서 읽어옵니다.
경로는 x32 운영체제와 x64 운영체제 모두 같습니다만 64비트 운영체제에서 32비트 프로그램과 64 비트 프로그램의 경로는 다릅니다.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

x64의 경우 x64 프로그램은
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

x32 프로그램은
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall

 

foobar 2000 에서 5.1ch로 듣기

푸바2000에서 5.1ch로 듣고 싶다면 아래를 다운받고

http://skipyrich.com/wiki/Foobar2000:Channel_Mixer

components 디렉토리에 복사한다.

foo_channel_mixer.zip

 

리눅스 배포판 확인

다양한 배포판의 릴리즈를 대응하기 위해서 설치된 리눅스 배포판 확인하는 방법.

[ihmin@localhost ~]$ lsb_release -i
Distributor ID: CentOS
[ihmin@localhost ~]$ lsb_release -d
Description:    CentOS release 5.7 (Final)
[ihmin@localhost ~]$ lsb_release -r
Release:        5.7
[ihmin@localhost ~]$ lsb_release -c
Codename:       Final
[ihmin@localhost ~]$ lsb_release -a
LSB Version:    :core-4.0-ia32:core-4.0-noarch:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-ia32:printing-4.0-noarch
Distributor ID: CentOS
Description:    CentOS release 5.7 (Final)
Release:        5.7
Codename:       Final
[ihmin@localhost ~]$

ihmin@ubuntu:~$ lsb_release -i
Distributor ID:	Ubuntu
ihmin@ubuntu:~$ lsb_release -d
Description:	Ubuntu 10.10
ihmin@ubuntu:~$ lsb_release -r
Release:	10.10
ihmin@ubuntu:~$ lsb_release -c
Codename:	maverick
ihmin@ubuntu:~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 10.10
Release:	10.10
Codename:	maverick
ihmin@ubuntu:~$

대충 -i 옵션으로 아래와 같이 사용하면 될것같음.

[ihmin@localhost ~]$ echo `lsb_release -i | cut -d':' -f2`
CentOS
ihmin@ubuntu:~$ echo `lsb_release -i | cut -d':' -f2`
Ubuntu
 

우분투 mono 설치

mono는 윈도우즈의 닷넷 프레임워크를 리눅스에서 돌리기 위한 프로젝트.

아래와 같이 일단 저장소 추가하고.

다음 인증 탭으로 가서 아래의 키 파일을 받아서 아래의 화면처럼 추가함.

directhex.ppa.asc

다음 점검 버튼을 누르면 아래의 화면처럼 mono 관련 패키지들이 보임.

이제 업데이트 설치버튼을 눌러서 설치.

테스트 hello world.

아래의 hello.cs 파일을 작성.

using System;

namespace Dela.Mono.Examples
{
   public class HelloWorld
   {
      public static void Main(string[] args)
      {
         Console.WriteLine("Hello World");
      }
   }
}

다음 아래와 같이 컴파일 및 테스트.

% sudo apt-get install mono-mcs
% mcs hello.cs
% mono hello.exe
Hello World
 

VMware 공유폴더 지정

guest os로 우분투가 있고 윈도우즈의 폴더에 r/w 접근하고자 할때 아래와 같이함.

Settings -> Options tab -> Shared Folders 선택후..
아래의 이미지와 같은 순서로 함.

다음 Next 버튼을 누른후, Enable this share 선택후 Finish 버튼을 누름.

아래와 같이 공유폴더 다시 확인하고 Ok 누름.

이제 guest os를 부팅후에.. /mnt/hgfs/works 폴더를 접근해서 잘 써지는 확인해봄.

마지막으로.. 아래와 같이 링크를 생성해서 사용해도 좋음.

% cd /
% sudo ln -s /mnt/hgfs/works works
% cd /works

 

NSIS에서 레지스트리 검색

만약 HKLM 하단에 밑의 이미지와 같이 ApplicationPath 라는 레지스트리 키가 있는지와

그의 값을 얻고자 한다면.. Registry 플로그인을 사용함.

http://nsis.sourceforge.net/Registry_plug-in

Registry.zip

아래와 같이 간단히 구현할 수 있음.

!include Registry.nsh

Function .onInit
	${registry::Open} "HKEY_LOCAL_MACHINE" "/K=0 /V=1 /S=0 /B=1 /N='ApplicationPath'" $0
	StrCmp $0 0 0 loop

	loop:
	; $1: Path, $2: Key, $3: Value
	${registry::Find} "$0" $1 $2 $3 $4

	${If} $3 == ""
		MessageBox MB_ICONINFORMATION|MB_OK \
			"Not found."
		${registry::Close} "$0"
		${registry::Unload}
		Abort
	${EndIf}

	; Default install directory
	StrCpy $INSTDIR $3

	; Memory free
	${registry::Close} "$0"
	${registry::Unload}
FunctionEnd
 

HWP

추억의 워드 프로세서 아래아 한글.

누나들 틈에 끼어서 워드프로세서 1회 시험에 응시하여 합격했던 적이 있었지.

한글 1.51

HWP151.zip

한글 2.1

hwp21dos.zip

한글 2.5
인스톨본을 구할수 없음. 누구 없나요?

한글 3.0 도스 버전

hwp30.zip

HWP/X 3.0b

리눅스용 한글 3.0b 맞나?..

이런거는 어디서도 정말 구할 수 없기에 자료 보관차 올려둔다.

hwpx.zip

다운을 받아보면 리눅스용 실행파일과 sys 파일들만 보이는데..
나머지는 윈도우용 한글에서 끌어다 사용해야함. 아래를 참고.

hwpx.txt

여기도 참고.
http://ftp.kaist.ac.kr/hangul/mirror/ftp.hnc.co.kr/