Gsl bugs

Lần trước là OpenCV, giờ là gsl.

Gsl (GNU Scientific Library) là thư viện C rất mạnh trong các tính toán khoa học. Tuy nhiên cũng như đa số các phần mềm của GNU khác, gsl mang tinh thần chung là anti-Windows. Có thể đọc thấy câu này trong hầu hết phần mềm của GNU:

A compiled version of <xxx> is available as part of Cygwin on Windows (but we recommend using <xxx> on a free operating system, such as GNU/Linux).

Phiên bản hiện tại của Gsl là 1.14, nhưng bản (unofficially) Gsl for Windows thì hiện chỉ tới 1.8.

Mình dùng gsl để giải phương trình vi phân cấp 2, và nhiều tính toán khác trên ma trận. Code gần xong rồi thì phát hiện hàm giải pt vi phân của Gsl for Win version 1.8 bị lỗi nghiêm trọng. Dưới một số điều kiện nhất định nào đó (điều kiện ban đầu, step size v.v…), hàm gsl_odeiv_evolve() trả về vector kết quả toàn là N/A.

Cũng đoạn code đó, mình mang sang Fedora, build Gsl 1.14 thì chạy ngon lành. (Trong Fedora, có thể dùng yum để cài gói gsl-devel, tuy nhiên đó chỉ là bản gsl 1.12).

Giờ thì khôn rồi. Những thứ unofficially như Gsl for Win, OpenCV (từ version 2.0 đã không còn do Intel cầm đầu)… thì đều phải cẩn trọng.

Trong lúc viết entry này thì đang build gsl trên Mac, sau đó sẽ dùng CMake để build luôn OpenCV. Nếu được thì sẽ code phần còn lại trên Xcode. Nếu có trục trặc thì phải code trong Fedora trên máy ảo vậy :-<

P.S: có một thư viện giải ODE khá hay là intel Ode lib. Mình đã down về chạy thử trên Win, nói chung phần mềm của Intel đa số đều có chất lượng rất tốt. Tuy nhiên mình không dùng cái này được, vì để chuyển code liên quan tới tính toán trên ma trận trong gsl sang cái này thì phiền quá. Chỉ ghi lại đây để sau này khỏi quên.

Update 9/6: Sau 1 buổi tối thì mình đã cài xong gsl trên mac. Mọi nỗ lực build gsl từ source đều thất bại, và giải pháp là dùng macports. OpenCV 2.1.0 cũng đã build và cài xong, nhưng hình như còn vấn đề với việc load video.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s