FACTOID # 109: What is in a name? More than 90% of people in Bhutan, Burundi and Burkina Faso are involved in agriculture.
 
 Home   Encyclopedia   Statistics   Countries A-Z   Flags   Maps   Education   Forum   FAQ   About 
 
WHAT'S NEW
RECENT ARTICLES
More Recent Articles »
 

SEARCH ALL

FACTS & STATISTICS    Advanced view

Search encyclopedia, statistics and forums:

 

 

(* = Graphable)

 

 


Encyclopedia > Index notation

Index notation is used in mathematics to refer to the elements of matrices or the components of a vector. The formalism of how indices are used varies according to the discipline. In particular, there are different methods for referring to the elements of a list, a vector, or a matrix, depending on whether one is writing a formal mathematical paper for publication, or when one is writing a computer program. Euclid, Greek mathematician, 3rd century BC, known today as the father of geometry; shown here in a detail of The School of Athens by Raphael. ... In mathematics, a matrix (plural matrices) is a rectangular table of numbers or, more generally, a table consisting of abstract quantities that can be added and multiplied. ... In physics and in vector calculus, a spatial vector is a concept characterized by a magnitude, which is a scalar, and a direction (which can be defined in a 3-dimensional space by the Euler angles). ... A computer program is a collection of instructions that describe a task, or set of tasks, to be carried out by a computer. ...


It is quite common in some mathematical proofs to refer to the elements of an array using subscripts, and in some cases superscripts. The use of superscripts is frequently encountered in the theory of general relativity. The following line states in effect that the each of the elements of a vector c are equal to the sum of the corresponding elements of vectors a and b General relativity (GR) is the geometrical theory of gravitation published by Albert Einstein in 1915. ...

mathbf{c}_j = mathbf{a}_j + mathbf{b}_j

so

mathbf{c}_0 = mathbf{a}_0 + mathbf{b}_0
mathbf{c}_1 = mathbf{a}_1 + mathbf{b}_1

and so on.


Superscripts are used instead of subscripts to distinguish covariant from contravariant entities, see Covariance and contravariance. It has been suggested that this article or section be merged into Covariant transformation. ...


See also: Summation convention For other topics related to Einstein see Einstein (disambig) In mathematics, especially in applications of linear algebra to physics, the Einstein notation or Einstein summation convention is a notational convention useful when dealing with coordinate equations or formulas. ...

Contents

Index notation in computing

In several programming languages, index notation is a way of addressing elements of an array. This method is used since it is closest to how it is implemented in assembly language whereby the address of the first element is used as a base, and a multiple (the index) of the element size is used to address inside the array. To meet Wikipedias quality standards, this article or section may require cleanup. ...


For example, if an array of integers is stored in a region of the computer's memory starting at the memory cell with address 3000 (the base address), and each integer occupies four cells (bytes), then the elements of this array are at memory locations 3000, 3004, 3008, ..., 0x3000 + 4(n-1). In general, the address of the ith element of an array with base address b and element size s is b+is. In computing, a base address denotes a memory address serving as a reference point (base) for other addresses. ... In computing, a base address denotes a memory address serving as a reference point (base) for other addresses. ...


C implementation details

In the C programming language, we can write the above as *(base + i) (pointer form) or base[i] (array indexing form), which is exactly equivalent because the C standard defines the array indexing form as a transformation to pointer form. Coincidentally, since pointer addition is commutative, this allows for obscure expressions such as 3[base] which is equivalent to base[3]. Wikibooks has a book on the topic of C Programming The C programming language (often, just C) is a general-purpose, procedural, imperative computer programming language developed in the early 1970s by Dennis Ritchie for use on the Unix operating system. ...


Multidimensional arrays

Things become more interesting when we consider arrays with more than one index, for example, a two-dimensional table. We have three possibilities:

  • make the two-dimensional array one-dimensional by computing a single index from the two
  • consider a one-dimensional array where each element is another one-dimensional array, i.e an array of arrays
  • use additional storage to hold the array of addresses of each row of the origninal array, and store the rows of the original array as separate one-dimensional arrays

In C, all three methods can be used. When the first method is used, the programmer decides how the elements of the array are laid out in the computer's memory, and provides the formulas to compute the location of each element. The second method is used when the number of elements in each row is the same and known at the time the program is written. The programmer declares the array to have, say, three columns by writing e.g. elementtype tablename[][3];. One then refers to a particular element of the array by writing tablename[first index][second index]. The compiler computes the total number of memory cells occupied by each row, uses the first index to find the address of the desired row, and then uses the second index to find the address of the desired element in the row. When the third method is used, the programmer declares the table to be an array of pointers, like in elementtype *tablename[];. When the programmer subsequently specifies a particular element tablename[first index][second index], the compiler generates instructions to look up the address of the row specified by the first index, and use this address as the base when computing the address of the element specified by the second index.


Example

This function multiplies two 3x3 floating point matrices together.

 void mult3x3f(float result[][3], const float A[][3], const float B[][3]) { int i, j, k; for (i = 0; i < 3; ++i) { for (j = 0; j < 3; ++j) { result[i][j] = 0; for (k = 0; k < 3; ++k) result[i][j] += A[i][k] * B[k][j]; } } } 

In other languages

In other programming languages such as Pascal, indices may start at 1, so indexing in a block of memory can be changed to fit a start-at-1 addressing scheme by a simple linear transformation - in this scheme, the memory location of the ith element with base address b and element size s is b+(i-1)s. In computing, a base address denotes a memory address serving as a reference point (base) for other addresses. ...


  Results from FactBites:
 
BME 456: Mathematical Preliminaries (5183 words)
Understanding index notation in reference to continuum mechanics is analogous to understanding a foreign language when visiting a culture in which that language is spoken.
The usefullness of index notation is that it allows us to track the orientation of quantities in 3D space like coodinates and displacements with very concise notation, all the while giving us a full understanding (assuming that we understand index notation) of what is going on.
This result by index notation is the same as the result using vector multiplication.
Einstein notation: Information from Answers.com (874 words)
According to this convention, when an index variable appears twice in a single term, once in an upper and once in a lower position, it implies that we are summing over all of its possible values.
Abstract index notation is an improvement of Einstein notation.
Sometimes (as in general relativity), the index is required to appear once as a superscript and once as a subscript; in other applications, all indices are subscripts.
  More results at FactBites »


 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments
Please enter the 5-letter protection code

Want to know more?
Search encyclopedia, statistics and forums:

 


Lesson Plans | Student Area | Student FAQ | Reviews | Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms.