In computer programming, rank with no further specifications is usually a synonym for (or refers to) "number of dimensions"; thus, for instance, a bi-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, since each of them has its own concepts, semantics 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
Given the code above the rank of a type T can be calculated at compile time by
-
//
// 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
rank::value
sizeof(rankof(expr))
This article is licensed under the GNU Free Documentation License.
It uses material from the
"Rank (computer programming)".
Home Page • arts • business • computers • games • health • hospitals • home • kids & teens • news • physicians • recreation• reference • regional • science • shopping • society • sports • world