1. 程式人生 > >IMSL 7.0 安裝與使用

IMSL 7.0 安裝與使用

本篇主要介紹windows下IMSL7.0的安裝,以及配合VS+IVF的使用(vs2013+ivf2013)。

IMSL簡介

是一個函式庫集合,通過對其的呼叫,簡化數值計算程式的編寫。

IMSL安裝

1. 首先下載IMSL7.0,包含32與64位

2. 雙擊 最後一級目錄 下的setup.exe安裝

(別的貌似也打不開)

  • 註冊碼填 201111

  • license檔案我從網上下了一個,貌似用不到;

  • 我選擇的是_nocuda那個資料夾下的,32位和64位的安裝都沒有問題。(不知道帶不帶_nocuda有什麼區別,誰知道的說一聲)。

3. windows環境變數設定

上一步安裝完成後,環境變數應該自己已經設定好了,不過也可以自己檢查一下。
在這裡

INCLUDELIB

windows環境變數
ps.這個貌似配合VS+IVF使用時不需要,但是其他編譯器可能需要,所以最好一併設定了。

VS設定

1. INCLUDELIB 設定

VS選單欄,工具(T) => 選項(O),設定如下圖
INCLUDE和LIB路徑設定

win32對應 $你的安裝根目錄\VNI\imsl\fnl700\winin111i32

win64對應 $你的安裝根目錄\VNI\imsl\fnl700\winin111e64

分別在上圖Includes和Libraries中新增,IMSL的include和lib的路徑,如下圖
include


lib

對應的,再填上win64位的就好了。

ps:注意這裡C:\前不需要$。

2. 程式測試

這裡摘取IMSL手冊中第一個求解線性方程組的例子進行測試。

include 'link_fnl_shared.h'
use lin_sol_gen_int
use rand_gen_int
use error_option_packet
implicit none
! This is Example 1 for LIN_SOL_GEN.
integer, parameter :: n=32
real(kind(1e0)), parameter :: one=1e0
real(kind(1e0
)) err real(kind(1e0)) A(n,n), b(n,n), x(n,n), res(n,n), y(n**2) ! Generate a random matrix. call rand_gen(y) A = reshape(y,(/n,n/)) ! Generate random right-hand sides. call rand_gen(y) b = reshape(y,(/n,n/)) ! Compute the solution matrix of Ax=b. call lin_sol_gen(A, b, x) ! Check the results for small residuals. res = b - matmul(A,x) err = maxval(abs(res))/sum(abs(A)+abs(b)) if (err <= sqrt(epsilon(one))) then write (*,*) 'Example 1 for LIN_SOL_GEN is correct.' end if end

總結

  1. IMSL下載困難,到處都找不到;

  2. 前面安裝配置簡單,最後測試時從網上的一些教程直接拷貝測試程式碼,但是那些程式碼多比較老舊,可能無法執行,這時配置其實沒有問題。比如,use IMSL在7.0是編譯不過的,需要換成use numerical_libraries;

  3. 從手冊中拷貝的程式碼編譯通過,執行出錯,提示“LNK2019:無法解析的外部符號……”,這裡不是配置問題,而是缺少 include ‘link_fnl_shared.h’ ,補上就好。新增之後還出錯,那可能真的是lib配置出了問題,重新查詢吧;

  4. 不行的時候,重啟一下試試。

參考資料