HOME

TheInfoList



OR:

In
computer programming Computer programming or coding is the composition of sequences of instructions, called computer program, programs, that computers can follow to perform tasks. It involves designing and implementing algorithms, step-by-step specifications of proc ...
, rank with no further specifications is usually a synonym for (or refers to) "number of dimensions"; thus, a two-dimensional array has rank ''two'', a three-dimensional array has rank ''three'' and so on. Strictly, no formal definition can be provided which applies to every
programming language A programming language is a system of notation for writing computer programs. Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
, since each of them has its own concepts,
semantics Semantics is the study of linguistic Meaning (philosophy), meaning. It examines what meaning is, how words get their meaning, and how the meaning of a complex expression depends on its parts. Part of this process involves the distinction betwee ...
and terminology; the term may not even be applicable or, to the contrary, applied with a very specific meaning in the context of a given language. In the case of APL the notion applies to every operand; and dyads ("binary functions") have a ''left rank'' and a ''right rank''. The box below instead shows how ''rank of a type'' and ''rank of an array expression'' could be defined (in a semi-formal style) for C++ and illustrates a simple way to calculate them at compile time. #include #include /* Rank of a type * ------------- * * Let the rank of a type T be the number of its dimensions if * it is an array; zero otherwise (which is the usual convention) */ template struct rank ; template struct rank ; template constexpr auto rank_v = rank::value; /* Rank of an expression * * Let the rank of an expression be the rank of its type */ template using unqualified_t = std::remove_cv_t>; template auto rankof(T&& expr) Given the code above the rank of a type T can be calculated at compile time by :rank::value or the shorter form :rank_v Calculating the rank of an expression can be done using :rankof(expr)


See also

*
Rank (linear algebra) In linear algebra, the rank of a matrix is the dimension of the vector space generated (or spanned) by its columns. p. 48, ยง 1.16 This corresponds to the maximal number of linearly independent columns of . This, in turn, is identical to the di ...
, for a definition of ''rank'' as applied to
matrices Matrix (: matrices or matrixes) or MATRIX may refer to: Science and mathematics * Matrix (mathematics), a rectangular array of numbers, symbols or expressions * Matrix (logic), part of a formula in prenex normal form * Matrix (biology), the ...
* Rank (J programming language), a concept of the same name in the J programming language


References

Arrays Programming language topics {{Compu-lang-stub