English
Related papers

Related papers: Welding R and C++: A Tale of Two Programming Langu…

200 papers

A study of the existing linear algebra libraries that you can use from C++

Mathematical Software · Computer Science 2011-03-17 Claire Mouton

To harness the full benefit of new computing platforms, it is necessary to develop software with parallel computing capabilities. This is no less true for statisticians than for astrophysicists. The R programming language, which is perhaps…

Computation · Statistics 2017-09-08 George Ostrouchov , Wei-Chen Chen , Drew Schmidt

Porting applications to new hardware or programming models is a tedious and error prone process. Every help that eases these burdens is saving developer time that can then be invested into the advancement of the application itself instead…

Distributed, Parallel, and Cluster Computing · Computer Science 2016-11-07 Erik Zenker , Benjamin Worpitz , René Widera , Axel Huebl , Guido Juckeland , Andreas Knüpfer , Wolfgang E. Nagel , Michael Bussmann

This article discusses an efficient implementation of tensors of arbitrary rank by using some of the idioms introduced by the recently published C++ ISO Standard (C++11). With the aims at providing a basic building block for…

Mathematical Software · Computer Science 2014-06-02 Alejandro M. Aragón

We introduce two new packages, Nemo and Hecke, written in the Julia programming language for computer algebra and number theory. We demonstrate that high performance generic algorithms can be implemented in Julia, without the need to resort…

Mathematical Software · Computer Science 2017-05-18 Claus Fieker , William Hart , Tommy Hofmann , Fredrik Johansson

We desribe how we extend R with an external C++ code library by using the Rcpp package. Our working example uses the recent machine learning library and application 'Corels' providing optimal yet easily interpretable rule lists…

Computation · Statistics 2019-11-18 Dirk Eddelbuettel

Parallel hardware makes concurrency mandatory for efficient program execution. However, writing concurrent software is both challenging and error-prone. C++11 provides standard facilities for multiprogramming, such as atomic operations with…

Programming Languages · Computer Science 2013-01-07 Dominik Charousset , Thomas C. Schmidt

When implementing functionality which requires sparse matrices, there are numerous storage formats to choose from, each with advantages and disadvantages. To achieve good performance, several formats may need to be used in one program,…

Mathematical Software · Computer Science 2019-10-22 Conrad Sanderson , Ryan Curtin

We present the C++ library CppSs (C++ super-scalar), which provides efficient task-parallelism without the need for special compilers or other software. Any C++ compiler that supports C++11 is sufficient. CppSs features different…

Distributed, Parallel, and Cluster Computing · Computer Science 2015-02-27 Steffen Brinkmann , Jose Gracia

The C language is getting more and more popular as a design and verification language (DVL). SystemC, ParC [1] and Cx [2] are based on C. C-models of the design and verification environment can also be generated from new DVLs (e.g. Chisel…

Hardware Architecture · Computer Science 2018-07-17 Tobias Strauch

Comparison of programming languages is a common topic of discussion among software engineers. Multiple programming languages are designed, specified, and implemented every year in order to keep up with the changing programming paradigms,…

Programming Languages · Computer Science 2015-04-06 Zakaria Alomari , Oualid El Halimi , Kaushik Sivaprasad , Chitrang Pandit

We describe a new C++ library for multiprecision arithmetic for numbers in the order of 100--500 bits, i.e., representable with just a few limbs. The library is written in "optimizing-compiler-friendly" C++, with an emphasis on the use of…

Cryptography and Security · Computer Science 2018-04-20 Niek J. Bouman

We define an abstract framework for object-oriented programming and show that object-oriented languages, such as C++, can be interpreted as parallel programming languages. Parallel C++ code is typically more than ten times shorter than the…

Programming Languages · Computer Science 2019-03-04 Edward Givelberg

Modelling of multivariate densities is a core component in many signal processing, pattern recognition and machine learning applications. The modelling is often done via Gaussian mixture models (GMMs), which use computationally expensive…

Mathematical Software · Computer Science 2018-05-10 Conrad Sanderson , Ryan Curtin

Language-orientated programming promises to elevate programmer productivity through increased abstrac- tion capabilities. Structural programming environments provide apparatus to reduce the difficulties with syntax. The language workbench,…

Programming Languages · Computer Science 2014-03-18 Gavin Wood

This paper explores the relationship between C++ templates and partial evaluation. Templates were designed to support generic programming, but unintentionally provided the ability to perform compile-time computations and code generation.…

Programming Languages · Computer Science 2007-05-23 Todd L. Veldhuizen

The translation of linear algebra computations into efficient sequences of library calls is a non-trivial task that requires expertise in both linear algebra and high-performance computing. Almost all high-level languages and libraries for…

Mathematical Software · Computer Science 2020-01-01 Henrik Barthels , Christos Psarras , Paolo Bientinesi

C is the lingua franca of programming and almost any device can be programmed using C. However, programming mod-ern heterogeneous architectures such as multi-core CPUs and GPUs requires explicitly expressing parallelism as well as…

CUDA and OpenCL are two different frameworks for GPU programming. OpenCL is an open standard that can be used to program CPUs, GPUs, and other devices from different vendors, while CUDA is specific to NVIDIA GPUs. Although OpenCL promises a…

Performance · Computer Science 2011-05-17 Kamran Karimi , Neil G. Dickson , Firas Hamze

We present a comparison of several modern C++ libraries providing high-level interfaces for programming multi- and many-core architectures on top of CUDA or OpenCL. The comparison focuses on the solution of ordinary differential equations…

Mathematical Software · Computer Science 2017-10-13 Denis Demidov , Karsten Ahnert , Karl Rupp , Peter Gottschling