English
Related papers

Related papers: Programming of Cellular Automata in C and C++

200 papers

Most modern processors contain vector units that simultaneously perform the same arithmetic operation over multiple sets of operands. The ability of compilers to automatically vectorize code is critical to effectively using these units.…

Performance · Computer Science 2025-02-21 Nazmus Sakib , Tarun Prabhu , Nandakishore Santhi , John Shalf , Abdel-Hameed A. Badawy

Vector operations play an important role in high performance computing and are typically provided by highly optimized libraries that implement the BLAS (Basic Linear Algebra Subprograms) interface. In C++ templates and operator overloading…

Mathematical Software · Computer Science 2011-09-07 J. Progsch , Y. Ineichen , A. Adelmann

Cellular automata are a discrete dynamical system which models massively parallel computation. Much attention is devoted to computations with small time complexity for which the parallelism may provide further possibilities. In this paper,…

Formal Languages and Automata Theory · Computer Science 2012-08-15 Anaël Grandjean , Gaétan Richard , Véronique Terrier

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

We introduce bindings that enable the convenient, efficient, and reliable use of software modules of CGAL (Computational Geometry Algorithm Library), which are written in C++, from within code written in Python. There are different tools…

Computational Geometry · Computer Science 2023-06-08 Nir Goren , Efi Fogel , Dan Halperin

Efficiently exploiting GPUs is increasingly essential in scientific computing, as many current and upcoming supercomputers are built using them. To facilitate this, there are a number of programming approaches, such as CUDA, OpenACC and…

Performance · Computer Science 2017-11-07 G. D. Balogh , I. Z. Reguly , G. R. Mudalige

Cellular automata are investigated towards their ability to compute transductions, that is, to transform inputs into outputs. The families of transductions computed are classified with regard to the time allowed to process the input and to…

Formal Languages and Automata Theory · Computer Science 2012-08-15 Martin Kutrib , Andreas Malcher

Devirtualization is a compiler optimization that replaces indirect (virtual) function calls with direct calls. It is particularly effective in object-oriented languages, such as Java or C++, in which virtual methods are typically abundant.…

Programming Languages · Computer Science 2020-03-10 Piotr Padlewski , Krzysztof Pszeniczny , Richard Smith

Concurrency has been a subject of study for more than 50 years. Still, many developers struggle to adapt their sequential code to be accessed concurrently. This need has pushed for generic solutions and specific concurrent data structures.…

Distributed, Parallel, and Cluster Computing · Computer Science 2019-11-06 Andreia Correia , Pedro Ramalhete , Pascal Felber

MATLAB is a mathematical computing environment used by many engineers, mathematicians, and students to process and understand their data. Important to all data science is the managing of textual data. MATLAB supports two textual data…

Performance · Computer Science 2021-09-28 Travis Near

A visual programming language uses pictorial tools such as diagrams to represent its structural units and control stream. It is useful for enhancing understanding, maintenance, verification, testing, and parallelism. This paper proposes a…

Programming Languages · Computer Science 2013-04-23 Sabah Al-Fedaghi

Cellular automata (CA) have been found as an attractive modeling tool for various applications, such as, pattern recognition, image processing, data compression, encryption, and specially for VLSI design & test. For such applications,…

Formal Languages and Automata Theory · Computer Science 2013-11-28 Sukanta Das , Biplab K Sikdar

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

Dynamic arrays, also referred to as vectors, are fundamental data structures used in many programs. Modeling their semantics efficiently is crucial when reasoning about such programs. The theory of arrays is widely supported but is not…

Logic in Computer Science · Computer Science 2022-05-24 Ying Sheng , Andres Nötzli , Andrew Reynolds , Yoni Zohar , David Dill , Wolfgang Grieskamp , Junkil Park , Shaz Qadeer , Clark Barrett , Cesare Tinelli

Cellular automata are capable of developing complex behaviors based on simple local interactions between their elements. Some of these characteristics have been used to propose and improve meta-heuristics for global optimization; however,…

With no intent of starting a holy war, this paper lists several annoying C++ birthmarks that the author has come across developing GUI class libraries. C++'s view of classes, instances and hierarchies appears tantalizingly close to GUI…

Programming Languages · Computer Science 2007-05-23 Oleg Kiselyov

Template metaprogramming is a popular technique for implementing compile time mechanisms for numerical computing. We demonstrate how expression templates can be used for compile time symbolic differentiation of algebraic expressions in C++…

Symbolic Computation · Computer Science 2017-05-05 Drosos Kourounis , Leonidas Gergidis , Michael Saunders , Andrea Walther , Olaf Schenk

We present a highly optimized implementation of tiered vectors, a data structure for maintaining a sequence of $n$ elements supporting access in time $O(1)$ and insertion and deletion in time $O(n^\epsilon)$ for $\epsilon > 0$ while using…

Data Structures and Algorithms · Computer Science 2017-11-02 Philip Bille , Anders Roy Christiansen , Mikko Berggren Ettienne , Inge Li Gørtz

Writing correct concurrent code that uses atomics under the C/C++ memory model is extremely difficult. We present C11Tester, a race detector for the C/C++ memory model that can explore executions in a larger fragment of the C/C++ memory…

Programming Languages · Computer Science 2021-02-26 Weiyu Luo , Brian Demsky

Cellular automata are computers, similar to Turing machines. The main difference is that Turing machines use a one-dimensional tape, whereas cellular automata use a two-dimensional grid. The best-known cellular automaton is the Game of…

Cellular Automata and Lattice Gases · Physics 2025-01-10 Peter Turney