Arrays

Arrays[{d1,,dr}]

represents the domain of arrays of rank r and dimensions di.

Arrays[{d1,,dr},dom]

represents the domain of arrays of dimensions di, with components in the domain dom.

Arrays[{d1,,dr},dom,sym]

represents the subdomain of arrays with dimensions di and symmetry sym.

Details

  • The length r of the list of dimensions is the rank or depth of the arrays in the domain.
  • Valid dimension specifications di in Arrays[{d1,,dr},dom,sym] are positive integers. It is also possible to work with symbolic dimension specifications.
  • Valid component domain specifications dom are either Reals or Complexes. Arrays[{d1,,dr}] uses Complexes by default.
  • The symmetry sym can be given in several forms. First, it can be given as expressions like Symmetric[{s1,,sk}] or Antisymmetric[{si,,sk}], with the slots si being different positive integers between 1 and the rank r. It can also be given as a list of generators of the form {perm,ϕ}, representing that the array stays invariant under simultaneous transposition by the permutation perm and multiplication by the root of unity ϕ. In addition, it can be given as the internal direct product {sym1, sym2,} of those forms.
  • When the symmetry is not specified, then none is assumed. The absence of symmetry, or identity symmetry, is represented by an empty list {} of generators.

Examples

open allclose all

Basic Examples  (1)

A fully symmetric real array of rank 3 in dimension 4:

Any transposition is equivalent to the original array:

Scope  (2)

Declare arrays of any rank and dimensions. A rank-3 array of complex elements:

A matrix without any symmetry, with symbolic dimensions:

A vector in dimension 4:

A complex scalar:

Declare arrays of any symmetry. A rank-3 antisymmetric array:

A real symmetric matrix:

An array with a general symmetry:

The symmetry must be consistent with the list of dimensions:

Applications  (3)

Specify the properties of symbolic arrays, so that algebraic operations can be performed with them:

Transpositions and products:

Contractions:

Canonicalization:

Check whether an array belongs to a given domain:

Conditions involving symbolic parameters may be converted into simpler conditions:

Check a subdomain relation:

Properties & Relations  (3)

The particular domain of matrices can also be given using Matrices. These two assumptions are equivalent:

The particular domain of vectors can also be given using Vectors. These two assumptions are equivalent:

Two alternative ways of checking numerical arrays:

Possible Issues  (2)

Addition of symbolic and explicit arrays is determined by the Listable attribute of Plus:

Hence, listability will in general affect operations that simultaneously involve both symbolic and explicit arrays:

The zero array may be represented as 0 in symbolic computations:

Introduced in 2012
 (9.0)