PofoliaPofolia ile paylaşıldı

The Journal of Open Source Software· 2016

Armadillo: Hız ve Kullanım Kolaylığını Dengeleyen Bir C++ Lineer Cebir Kütüphanesi

Armadillo: a template-based C++ library for linear algebra

Conrad Sanderson, Ryan R. Curtin

Kısa özet

Armadillo, MATLAB/Octave'a benzer üst düzey bir API sunan, performans optimizasyonu için şablon metaprogramlama özellikleriyle verimli algoritma geliştirmeyi ve kod dönüşümünü sağlayan bir C++ lineer cebir kütüphanesidir.

Yapay zekâ ile başlık ve abstract'tan üretildi; tam metin okunmaz.

Ana noktalar

  • Armadillo, MATLAB/Octave'a benzer üst düzey bir API sunan bir C++ lineer cebir kütüphanesidir.
  • Tam sayı, kayan nokta ve karmaşık sayı türleriyle vektörleri, matrisleri ve küpleri destekler.
  • Kütüphane, verimli matris ayrıştırmaları için LAPACK/BLAS ile entegre olur ve GPU hızlandırmasından yararlanmak için NVBLAS'ı kullanabilir.
  • Artan hız ve verimlilik için işlemleri otomatik olarak birleştiren bir ifade değerlendiricisi için şablon metaprogramlamayı kullanır.

Yapay zekâ ile başlık ve abstract'tan üretildi; tam metin okunmaz.

Özet (abstract)

The C++ language is often used for implementing functionality that is performance\nand/or resource sensitive. While the standard C++ library provides many useful algorithms (such as sorting), in its current form it does not provide direct handling of\nlinear algebra (matrix maths).\nArmadillo is an open source linear algebra library for the C++ language, aiming towards\na good balance between speed and ease of use. Its high-level Application Programming\nInterface (API) is deliberately similar to the widely Matlab and Octave languages (Eaton\net al. 2015), so that mathematical operations can be expressed in a familiar and natural\nmanner. The library is useful for algorithm development directly in C++, or relatively\nquick conversion of research code into production environments.\nArmadillo provides efficient objects for vectors, matrices and cubes (third order tensors),\nas well as over 200 associated functions for manipulating data stored in the objects. Integer, floating point and complex numbers are supported, as well as dense and sparse\nstorage formats. Various matrix factorisations are provided through integration with LAPACK (Demmel 1997), or one of its high performance drop-in replacements such as Intel\nMKL (Intel 2016) or OpenBLAS (Xianyi, Qian, and Saar 2016). It is also possible to use\nArmadillo in conjunction with NVBLAS to obtain GPU-accelerated matrix multiplication\n(NVIDIA 2015).\nArmadillo is used as a base for other open source projects, such as MLPACK, a C++\nlibrary for machine learning and pattern recognition (Curtin et al. 2013), and RcppArmadillo, a bridge between the R language and C++ in order to speed up computations\n(Eddelbuettel and Sanderson 2014).\nArmadillo internally employs an expression evaluator based on template metaprogramming techniques (Abrahams and Gurtovoy 2004), to automatically combine\nseveral operations in order to increase speed and efficiency. An overview of the internal\narchitecture is given in (Sanderson 2010).

Yazarların özeti; kaynağından alınmıştır. The Journal of Open Source Software, 2016 · DOI ↗

ÇıkarımlarPremium
Makaleye SorÜcretsiz hesapla

Ücretsiz hesapla devam et

Makaleye Sor ile bu makaleye günde 3 soru ücretsiz; makaleyi kaydet, kaynakçasını al, ilgi alanına göre her gün yeni özetler. Çıkarımlar Premium.

Web'de ücretsiz devam et

Google ya da Apple hesabınla giriş; kart istemez. Bu makaleye geri dönersin.

Telefonda:

Alan: Donanım ve Mimari

Hardware and ArchitectureComputer Science