Mục đích của tôi khi sử dụng LAPACK là tính toán độ cholesky của ma trận. Tôi đang lập trình trong C/C++ trong Fedora, nhưng tôi đang bối rối mà lapack để cài đặt - LAPACK với lapacke hoặc clapack?lapacke hoặc clapack nếu lập trình bằng c/C++ trong linux
Trả lời
Sự khác biệt cơ bản giữa hai là sự cần thiết cho trình biên dịch Fortran.
CLAPACK về cơ bản chỉ là tham chiếu NETLIB LAPACK được truyền qua bộ chuyển đổi f2c cũ, cho phép thư viện được biên dịch bằng trình biên dịch C.
LAPACKE là một nỗ lực (bắt đầu bởi Intel IIRC) để xác định giao diện ngôn ngữ C chính thức cho thư viện Fortran LAPACK. Nó có lợi thế là nó là LAPACK thực hiện độc lập và sẽ ẩn toolchain cụ thể C để Fortran khả năng tương tác để các lập trình viên không phải lo lắng về chúng. LAPACKE cũng có lợi thế khác biệt khi làm việc chính xác với loại nội tại phức tạp của C99. Tôi không mong đợi một sự khác biệt hiệu suất lớn giữa hai (sự lựa chọn của BLAS dictates nhất), nhưng tôi có lẽ sẽ ủng hộ LAPACKE + LAPACK và BLAS implmementation của sự lựa chọn, nếu tôi đã bắt đầu từ đầu ngày hôm nay.
Cảm ơn câu trả lời của bạn, tài năng. Tôi đang mã hóa trong một hỗn hợp của c và c + +. Tôi đã đấu tranh trong việc cài đặt lapack. Tôi vừa cài đặt Lapack 3.3.1 và Lapacke, nhưng khi tôi thực hiện lapack_testing, nó phàn nàn '../../../lapack-3.3.1/lapack_LINUX.a(xerbla.o): Trong hàm 'xerbla_': /trunk/lapack/lapack-3.3.1/SRC/xerbla.f:40: không xác định tham chiếu đến '_gfortran_st_write 'Tôi có nên cài đặt Lapack 3.2.1 thay vì 3.3.1 không? – user506146
[đã giải quyết]. Trong make.inc, tôi phát hiện ra rằng tôi cần phải đặt LINKER = fortran, sau đó làm cho lapacke_testing chạy mà không có lỗi. THanks @ – user506146
Điều đó đang cho bạn biết rằng bạn không liên kết thư viện chuẩn fortran. Bạn có thể thấy dễ dàng hơn khi sử dụng trình biên dịch fortran để liên kết và thêm các thư viện chuẩn C hoặc/hoặc C++ vào danh sách các thư viện mà bạn cần liên kết. – talonmies
Chỉ cần một nhận xét. Không có ngôn ngữ như vậy là C/C++. Có C và C++. Chúng không giống nhau. Bạn có muốn viết mã bằng C hoặc C++ không? – talonmies