Array programming, the Glossary
In computer science, array programming refers to solutions that allow the application of operations to an entire set of values at once.[1]
Table of Contents
82 relations: A+ (programming language), Ada (programming language), Algorithmic efficiency, Analytica (software), APL (programming language), Armadillo (C++ library), Array (data structure), Array slicing, Associative property, Augmented assignment, Automatic vectorization, Automatically Tuned Linear Algebra Software, AVX-512, Blitz++, C (programming language), C++, Chapel (programming language), Cilk, Commutative property, Computational science, Computer science, Cross product, Dartmouth BASIC, Determinant, Euclidean vector, Fold (higher-order function), Fortran, FreeMat, Futhark (programming language), General-purpose computing on graphics processing units, GNU Compiler Collection, GNU Octave, Graphics processing unit, Hadamard product (matrices), High-level programming language, IDL (programming language), Implicit parallelism, Intel, Invertible matrix, J (programming language), K (programming language), Kenneth E. Iverson, LAPACK, Linear algebra, MATLAB, Matrix (mathematics), Matrix multiplication, MMX (instruction set), Moore–Penrose inverse, Multi-core processor, ... Expand index (32 more) »
A+ (programming language)
A+ is a high-level, interactive, interpreted array programming language designed for numerically intensive applications, especially those found in financial applications. Array programming and a+ (programming language) are array programming languages.
See Array programming and A+ (programming language)
Ada (programming language)
Ada is a structured, statically typed, imperative, and object-oriented high-level programming language, inspired by Pascal and other languages.
See Array programming and Ada (programming language)
Algorithmic efficiency
In computer science, algorithmic efficiency is a property of an algorithm which relates to the amount of computational resources used by the algorithm.
See Array programming and Algorithmic efficiency
Analytica (software)
Analytica is a visual software developed by Lumina Decision Systems for creating, analyzing and communicating quantitative decision models. Array programming and Analytica (software) are array programming languages.
See Array programming and Analytica (software)
APL (programming language)
APL (named after the book A Programming Language) is a programming language developed in the 1960s by Kenneth E. Iverson. Array programming and APL (programming language) are array programming languages.
See Array programming and APL (programming language)
Armadillo (C++ library)
Armadillo is a linear algebra software library for the C++ programming language.
See Array programming and Armadillo (C++ library)
Array (data structure)
In computer science, an array is a data structure consisting of a collection of elements (values or variables), of same memory size, each identified by at least one array index or key.
See Array programming and Array (data structure)
Array slicing
In computer programming, array slicing is an operation that extracts a subset of elements from an array and packages them as another array, possibly in a different dimension from the original.
See Array programming and Array slicing
Associative property
In mathematics, the associative property is a property of some binary operations that means that rearranging the parentheses in an expression will not change the result.
See Array programming and Associative property
Augmented assignment
Augmented assignment (or compound assignment) is the name given to certain assignment operators in certain programming languages (especially those derived from C).
See Array programming and Augmented assignment
Automatic vectorization
Automatic vectorization, in parallel computing, is a special case of automatic parallelization, where a computer program is converted from a scalar implementation, which processes a single pair of operands at a time, to a vector implementation, which processes one operation on multiple pairs of operands at once.
See Array programming and Automatic vectorization
Automatically Tuned Linear Algebra Software
Automatically Tuned Linear Algebra Software (ATLAS) is a software library for linear algebra.
See Array programming and Automatically Tuned Linear Algebra Software
AVX-512
AVX-512 are 512-bit extensions to the 256-bit Advanced Vector Extensions SIMD instructions for x86 instruction set architecture (ISA) proposed by Intel in July 2013, and first implemented in the 2016 Intel Xeon Phi x200 (Knights Landing), and then later in a number of AMD and other Intel CPUs (see list below).
See Array programming and AVX-512
Blitz++
Blitz++ is a high-performance vector mathematics library written in C++.
See Array programming and Blitz++
C (programming language)
C (pronounced – like the letter c) is a general-purpose programming language.
See Array programming and C (programming language)
C++
C++ (pronounced "C plus plus" and sometimes abbreviated as CPP) is a high-level, general-purpose programming language created by Danish computer scientist Bjarne Stroustrup.
Chapel (programming language)
Chapel, the Cascade High Productivity Language, is a parallel programming language that was developed by Cray, and later by Hewlett Packard Enterprise which acquired Cray. Array programming and Chapel (programming language) are array programming languages.
See Array programming and Chapel (programming language)
Cilk
Cilk, Cilk++, Cilk Plus and OpenCilk are general-purpose programming languages designed for multithreaded parallel computing.
See Array programming and Cilk
Commutative property
In mathematics, a binary operation is commutative if changing the order of the operands does not change the result.
See Array programming and Commutative property
Computational science
Computational science, also known as scientific computing, technical computing or scientific computation (SC), is a division of science that uses advanced computing capabilities to understand and solve complex physical problems.
See Array programming and Computational science
Computer science
Computer science is the study of computation, information, and automation.
See Array programming and Computer science
Cross product
In mathematics, the cross product or vector product (occasionally directed area product, to emphasize its geometric significance) is a binary operation on two vectors in a three-dimensional oriented Euclidean vector space (named here E), and is denoted by the symbol \times.
See Array programming and Cross product
Dartmouth BASIC
Dartmouth BASIC is the original version of the BASIC programming language.
See Array programming and Dartmouth BASIC
Determinant
In mathematics, the determinant is a scalar-valued function of the entries of a square matrix.
See Array programming and Determinant
Euclidean vector
In mathematics, physics, and engineering, a Euclidean vector or simply a vector (sometimes called a geometric vector or spatial vector) is a geometric object that has magnitude (or length) and direction.
See Array programming and Euclidean vector
Fold (higher-order function)
In functional programming, fold (also termed reduce, accumulate, aggregate, compress, or inject) refers to a family of higher-order functions that analyze a recursive data structure and through use of a given combining operation, recombine the results of recursively processing its constituent parts, building up a return value.
See Array programming and Fold (higher-order function)
Fortran
Fortran (formerly FORTRAN) is a third generation, compiled, imperative programming language that is especially suited to numeric computation and scientific computing. Array programming and Fortran are array programming languages.
See Array programming and Fortran
FreeMat
FreeMat is a free open-source numerical computing environment and programming language, similar to MATLAB and GNU Octave. Array programming and FreeMat are array programming languages.
See Array programming and FreeMat
Futhark (programming language)
Futhark is a multi-paradigm, high-level, functional, data parallel, array programming language. Array programming and Futhark (programming language) are array programming languages.
See Array programming and Futhark (programming language)
General-purpose computing on graphics processing units
General-purpose computing on graphics processing units (GPGPU, or less often GPGP) is the use of a graphics processing unit (GPU), which typically handles computation only for computer graphics, to perform computation in applications traditionally handled by the central processing unit (CPU).
See Array programming and General-purpose computing on graphics processing units
GNU Compiler Collection
The GNU Compiler Collection (GCC) is a collection of compilers from the GNU Project that support various programming languages, hardware architectures and operating systems.
See Array programming and GNU Compiler Collection
GNU Octave
GNU Octave is a scientific programming language for scientific computing and numerical computation. Array programming and GNU Octave are array programming languages.
See Array programming and GNU Octave
Graphics processing unit
A graphics processing unit (GPU) is a specialized electronic circuit initially designed for digital image processing and to accelerate computer graphics, being present either as a discrete video card or embedded on motherboards, mobile phones, personal computers, workstations, and game consoles.
See Array programming and Graphics processing unit
Hadamard product (matrices)
In mathematics, the Hadamard product (also known as the element-wise product, entrywise product or Schur product) is a binary operation that takes in two matrices of the same dimensions and returns a matrix of the multiplied corresponding elements.
See Array programming and Hadamard product (matrices)
High-level programming language
In computer science, a high-level programming language is a programming language with strong abstraction from the details of the computer.
See Array programming and High-level programming language
IDL (programming language)
IDL, short for Interactive Data Language, is a programming language used for data analysis. Array programming and IDL (programming language) are array programming languages.
See Array programming and IDL (programming language)
Implicit parallelism
In computer science, implicit parallelism is a characteristic of a programming language that allows a compiler or interpreter to automatically exploit the parallelism inherent to the computations expressed by some of the language's constructs.
See Array programming and Implicit parallelism
Intel
Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California, and incorporated in Delaware.
See Array programming and Intel
Invertible matrix
In linear algebra, an -by- square matrix is called invertible (also nonsingular, nondegenerate or rarely regular) if there exists an -by- square matrix such that\mathbf.
See Array programming and Invertible matrix
J (programming language)
The J programming language, developed in the early 1990s by Kenneth E. Iverson and Roger Hui, is an array programming language based primarily on APL (also by Iverson). Array programming and j (programming language) are array programming languages.
See Array programming and J (programming language)
K (programming language)
K is a proprietary array processing programming language developed by Arthur Whitney and commercialized by Kx Systems. Array programming and k (programming language) are array programming languages.
See Array programming and K (programming language)
Kenneth E. Iverson
Kenneth Eugene Iverson (17 December 1920 – 19 October 2004) was a Canadian computer scientist noted for the development of the programming language APL.
See Array programming and Kenneth E. Iverson
LAPACK
LAPACK ("Linear Algebra Package") is a standard software library for numerical linear algebra.
See Array programming and LAPACK
Linear algebra
Linear algebra is the branch of mathematics concerning linear equations such as: linear maps such as: and their representations in vector spaces and through matrices.
See Array programming and Linear algebra
MATLAB
MATLAB (an abbreviation of "MATrix LABoratory") is a proprietary multi-paradigm programming language and numeric computing environment developed by MathWorks. Array programming and MATLAB are array programming languages.
See Array programming and MATLAB
Matrix (mathematics)
In mathematics, a matrix (matrices) is a rectangular array or table of numbers, symbols, or expressions, with elements or entries arranged in rows and columns, which is used to represent a mathematical object or property of such an object.
See Array programming and Matrix (mathematics)
Matrix multiplication
In mathematics, particularly in linear algebra, matrix multiplication is a binary operation that produces a matrix from two matrices.
See Array programming and Matrix multiplication
MMX (instruction set)
MMX is a single instruction, multiple data (SIMD) instruction set architecture designed by Intel, introduced on January 8, 1997 with its Pentium P5 (microarchitecture) based line of microprocessors, named "Pentium with MMX Technology".
See Array programming and MMX (instruction set)
Moore–Penrose inverse
In mathematics, and in particular linear algebra, the Moore–Penrose inverse of a matrix, often called the pseudoinverse, is the most widely known generalization of the inverse matrix.
See Array programming and Moore–Penrose inverse
Multi-core processor
A multi-core processor is a microprocessor on a single integrated circuit with two or more separate processing units, called cores (for example, dual-core or quad-core), each of which reads and executes program instructions.
See Array programming and Multi-core processor
Multidimensional analysis
In statistics, econometrics and related fields, multidimensional analysis (MDA) is a data analysis process that groups data into two categories: data dimensions and measurements.
See Array programming and Multidimensional analysis
Multiple instruction, multiple data
In computing, multiple instruction, multiple data (MIMD) is a technique employed to achieve parallelism.
See Array programming and Multiple instruction, multiple data
Nial
Nial (from "Nested Interactive Array Language") is a high-level array programming language developed from about 1981 by Mike Jenkins of Queen's University, Kingston, Ontario, Canada. Array programming and Nial are array programming languages.
See Array programming and Nial
NumPy
NumPy (pronounced) is a library for the Python programming language, adding support for large, multi-dimensional arrays and matrices, along with a large collection of high-level mathematical functions to operate on these arrays. Array programming and NumPy are array programming languages.
See Array programming and NumPy
One-liner program
In computer programming, a one-liner program originally was textual input to the command line of an operating system shell that performed some function in just one line of input.
See Array programming and One-liner program
OpenMP
OpenMP (Open Multi-Processing) is an application programming interface (API) that supports multi-platform shared-memory multiprocessing programming in C, C++, and Fortran, on many platforms, instruction-set architectures and operating systems, including Solaris, AIX, FreeBSD, HP-UX, Linux, macOS, and Windows.
See Array programming and OpenMP
Operator overloading
In computer programming, operator overloading, sometimes termed operator ad hoc polymorphism, is a specific case of polymorphism, where different operators have different implementations depending on their arguments.
See Array programming and Operator overloading
Optimizing compiler
An optimizing compiler is a compiler designed to generate code that is optimized in aspects such as minimizing program execution time, memory use, storage size, and power consumption.
See Array programming and Optimizing compiler
Overhead (computing)
In computer science, overhead is any combination of excess or indirect computation time, memory, bandwidth, or other resources that are required to perform a specific task.
See Array programming and Overhead (computing)
Parallel computing
Parallel computing is a type of computation in which many calculations or processes are carried out simultaneously.
See Array programming and Parallel computing
Pascal (programming language)
Pascal is an imperative and procedural programming language, designed by Niklaus Wirth as a small, efficient language intended to encourage good programming practices using structured programming and data structuring.
See Array programming and Pascal (programming language)
Perl Data Language
Perl Data Language (abbreviated PDL) is a set of free software array programming extensions to the Perl programming language. Array programming and Perl Data Language are array programming languages.
See Array programming and Perl Data Language
Python (programming language)
Python is a high-level, general-purpose programming language.
See Array programming and Python (programming language)
Q (programming language from Kx Systems)
Q is a programming language for array processing, developed by Arthur Whitney. Array programming and q (programming language from Kx Systems) are array programming languages.
See Array programming and Q (programming language from Kx Systems)
R (programming language)
R is a programming language for statistical computing and data visualization. Array programming and r (programming language) are array programming languages.
See Array programming and R (programming language)
Raku (programming language)
Raku is a member of the Perl family of programming languages.
See Array programming and Raku (programming language)
Relational operator
In computer science, a relational operator is a programming language construct or operator that tests or defines some kind of relation between two entities.
See Array programming and Relational operator
S-Lang
The S-Lang programming library is a software library for Unix, Windows, VMS, OS/2, and Mac OS X. It provides routines for embedding an interpreter for the S-Lang scripting language, and components to facilitate the creation of text-based applications.
See Array programming and S-Lang
SAC programming language
SAC (Single Assignment C) is a strict purely functional programming language whose design is focused on the needs of numerical applications. Array programming and SAC programming language are array programming languages.
See Array programming and SAC programming language
Scalar processor
Scalar processors are a class of computer processors that process only one data item at a time.
See Array programming and Scalar processor
Scilab
Scilab is a free and open-source, cross-platform numerical computational package and a high-level, numerically oriented programming language. Array programming and Scilab are array programming languages.
See Array programming and Scilab
Single instruction, multiple data
Single instruction, multiple data (SIMD) is a type of parallel processing in Flynn's taxonomy.
See Array programming and Single instruction, multiple data
Square matrix
In mathematics, a square matrix is a matrix with the same number of rows and columns.
See Array programming and Square matrix
SSSE3
Supplemental Streaming SIMD Extensions 3 (SSSE3 or SSE3S) is a SIMD instruction set created by Intel and is the fourth iteration of the SSE technology.
See Array programming and SSSE3
Stata
Stata (alternatively, occasionally stylized as STATA) is a general-purpose statistical software package developed by StataCorp for data manipulation, visualization, statistics, and automated reporting.
See Array programming and Stata
System of linear equations
In mathematics, a system of linear equations (or linear system) is a collection of two or more linear equations involving the same variables.
See Array programming and System of linear equations
Tensor
In mathematics, a tensor is an algebraic object that describes a multilinear relationship between sets of algebraic objects related to a vector space.
See Array programming and Tensor
TI-BASIC
TI-BASIC is the official name of a BASIC-like language built into Texas Instruments' graphing calculators.
See Array programming and TI-BASIC
Transpose
In linear algebra, the transpose of a matrix is an operator which flips a matrix over its diagonal; that is, it switches the row and column indices of the matrix by producing another matrix, often denoted by (among other notations).
See Array programming and Transpose
Vector processor
In computing, a vector processor or array processor is a central processing unit (CPU) that implements an instruction set where its instructions are designed to operate efficiently and effectively on large one-dimensional arrays of data called vectors.
See Array programming and Vector processor
Z-level programming language
Z-level Programming Language is an array programming language designed to replace C and C++ programming languages in engineering and scientific applications. Array programming and z-level programming language are array programming languages.
See Array programming and Z-level programming language
3DNow!
3DNow! is a deprecated extension to the x86 instruction set developed by Advanced Micro Devices (AMD).
See Array programming and 3DNow!
References
[1] https://en.wikipedia.org/wiki/Array_programming
Also known as Array (programming), Array programming language, Array programming languages, Array-based programming, Array-oriented programming, Mata (programming language), Scalar programming.
, Multidimensional analysis, Multiple instruction, multiple data, Nial, NumPy, One-liner program, OpenMP, Operator overloading, Optimizing compiler, Overhead (computing), Parallel computing, Pascal (programming language), Perl Data Language, Python (programming language), Q (programming language from Kx Systems), R (programming language), Raku (programming language), Relational operator, S-Lang, SAC programming language, Scalar processor, Scilab, Single instruction, multiple data, Square matrix, SSSE3, Stata, System of linear equations, Tensor, TI-BASIC, Transpose, Vector processor, Z-level programming language, 3DNow!.