<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://en.formulasearchengine.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=5.71.0.0%2F16</id>
	<title>formulasearchengine - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://en.formulasearchengine.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=5.71.0.0%2F16"/>
	<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/wiki/Special:Contributions/5.71.0.0/16"/>
	<updated>2026-08-28T19:24:33Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.47.0-wmf.7</generator>
	<entry>
		<id>https://en.formulasearchengine.com/w/index.php?title=Object_theory&amp;diff=238184</id>
		<title>Object theory</title>
		<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/w/index.php?title=Object_theory&amp;diff=238184"/>
		<updated>2014-10-23T09:46:24Z</updated>

		<summary type="html">&lt;p&gt;5.71.212.84: /* Models */ used prime symbol to avoid mistaken interpretation of apostrophes as markup&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Plastic and Reconstructive Surgeon Rolando from Blenheim, has interests including garage saleing, new launch property singapore and snorkeling. Finished a cruise ship experience that included passing by Vallée de Mai Nature Reserve.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Feel free to visit my blog post :: [http://gamerhop.com/groups/singapore-rental/ gamerhop.com]&lt;/div&gt;</summary>
		<author><name>5.71.212.84</name></author>
	</entry>
	<entry>
		<id>https://en.formulasearchengine.com/w/index.php?title=Purely_functional&amp;diff=5026</id>
		<title>Purely functional</title>
		<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/w/index.php?title=Purely_functional&amp;diff=5026"/>
		<updated>2013-10-25T00:03:52Z</updated>

		<summary type="html">&lt;p&gt;5.71.241.248: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Geometric dimenioning and tolerancing-hole.svg|thumb|right|Example of geometric dimensioning and tolerancing]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Geometric dimensioning and tolerancing (GD&amp;amp;T)&#039;&#039;&#039; is a system for defining and communicating [[engineering tolerance]]s. It uses a symbolic language on [[engineering drawing]]s and computer-generated three-dimensional solid models that explicitly describes nominal [[geometry]] and its allowable variation. It tells the manufacturing staff and machines what degree of [[accuracy and precision]] is needed on each controlled feature of the part.&lt;br /&gt;
GD&amp;amp;T is used to define the nominal (theoretically perfect) geometry of parts and assemblies, to define the allowable variation in form and possible size of individual features, and to define the allowable variation between features.&lt;br /&gt;
&lt;br /&gt;
*Dimensioning specifications define the nominal, as-modeled or as-intended geometry. One example is a basic dimension.&lt;br /&gt;
*Tolerancing specifications define the allowable variation for the form and possibly the size of individual features, and the allowable variation in orientation and location between features. Two examples are [[dimension|linear dimensions]] and feature control frames using a [[datum reference]] (both shown above).&lt;br /&gt;
&lt;br /&gt;
There are several standards available worldwide that describe the symbols and define the rules used in GD&amp;amp;T. One such standard is [[American Society of Mechanical Engineers]] (ASME) Y14.5-2009. This article is based on that standard, but other standards, such as those from the [[International Organization for Standardization]] (ISO), may vary slightly. The Y14.5 standard has the advantage of providing a fairly complete set of standards for GD&amp;amp;T in one document. The ISO standards, in comparison, typically only address a single topic at a time. There are separate standards that provide the details for each of the major symbols and topics below (e.g. position, flatness, profile, etc.).&lt;br /&gt;
&lt;br /&gt;
== Dimensioning and tolerancing philosophy ==&lt;br /&gt;
According to the ASME Y14.5-2009&amp;lt;ref&amp;gt;{{cite book|title=Dimensioning and Tolerancing, ASME y14.5-2009|year=2009|publisher=American Society of Mechanical Engineers|location=NY|isbn=0-7918-3192-2|authorlink=ASME}}&amp;lt;/ref&amp;gt;  standard, the purpose of geometric dimensioning and tolerancing (GD&amp;amp;T) is to describe the engineering intent of parts and assemblies.  This is not a completely correct explanation of the purpose of GD&amp;amp;T or dimensioning and tolerancing in general.{{Citation needed|date=June 2013}}&lt;br /&gt;
&lt;br /&gt;
The purpose of GD&amp;amp;T is more accurately defined as describing the geometric requirements for part and assembly geometry. {{Citation needed|date=June 2013}} Proper application of GD&amp;amp;T will ensure that the allowable part and assembly geometry defined on the drawing leads to parts that have the desired form and fit (within limits) and function as intended.&lt;br /&gt;
&lt;br /&gt;
There are some fundamental rules that need to be applied (these can be found on page 7 of the 2009 edition of the standard):&lt;br /&gt;
*All dimensions must have a tolerance.  Every feature on every manufactured part is subject to variation, therefore, the limits of allowable variation must be specified. Plus and minus tolerances may be applied directly to dimensions or applied from a general tolerance block or general note.  For basic dimensions, geometric tolerances are indirectly applied in a related Feature Control Frame.  The only exceptions are for dimensions marked as minimum, maximum, stock or reference.&lt;br /&gt;
*Dimensioning and tolerancing shall completely define the nominal geometry and allowable variation. Measurement and scaling of the drawing is not allowed except in certain cases.&lt;br /&gt;
*Engineering drawings define the requirements of finished (complete) parts. Every dimension and tolerance required to define the finished part shall be shown on the drawing. If additional dimensions would be helpful, but are not required, they may be marked as reference.&lt;br /&gt;
*Dimensions should be applied to features and arranged in such a way as to represent the function of the features. Additionally, dimensions should not be subject to more than one interpretation.&lt;br /&gt;
*Descriptions of manufacturing methods should be avoided. The geometry should be described without explicitly defining the method of manufacture.&lt;br /&gt;
*If certain sizes are required during manufacturing but are not required in the final geometry (due to shrinkage or other causes) they should be marked as non-mandatory.&lt;br /&gt;
*All dimensioning and tolerancing should be arranged for maximum readability and should be applied to visible lines in true profiles.&lt;br /&gt;
*When geometry is normally controlled by gage sizes or by code (e.g. stock materials), the dimension(s) shall be included with the gage or code number in parentheses following or below the dimension.&lt;br /&gt;
*Angles of 90° are assumed when lines (including center lines) are shown at right angles, but no angular dimension is explicitly shown.  (This also applies to other orthogonal angles of 0°, 180°, 270°, etc.)&lt;br /&gt;
*Dimensions and tolerances are valid at 20 °C / 101.3 kPa unless stated otherwise.&lt;br /&gt;
*Unless explicitly stated, all dimensions and tolerances are only valid when the item is in a free state.&lt;br /&gt;
*Dimensions and tolerances apply to the full length, width, and depth of a feature including form variation.&lt;br /&gt;
*Dimensions and tolerances only apply at the level of the drawing where they are specified. It is not mandatory that they apply at other drawing levels, unless the specifications are repeated on the higher level drawing(s).&lt;br /&gt;
&lt;br /&gt;
(Note: The rules above are not the exact rules stated in the ASME Y14.5-2009 standard.)&lt;br /&gt;
&lt;br /&gt;
== Symbols ==&amp;lt;!-- [[Engineering drawing abbreviations and symbols]] links here --&amp;gt;&lt;br /&gt;
Tolerances: Type of Tolerances; 1) Unilateral 2) Bi- Lateral type&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+Geometric tolerancing reference chart&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;Per ASME Y14.5 M-1982&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Type of tolerance&lt;br /&gt;
! Geometric characteristics&lt;br /&gt;
! Symbol&lt;br /&gt;
! Character&amp;lt;br /&amp;gt;([[Unicode]])&lt;br /&gt;
! Can be applied to a surface?&lt;br /&gt;
! Can be applied to a feature of size?&lt;br /&gt;
! Can affect virtual condition?&lt;br /&gt;
! Datum reference used?&lt;br /&gt;
! Can use&amp;lt;center&amp;gt;[[Image:Gd&amp;amp;t maximummaterialcondition.png]]&amp;lt;/center&amp;gt;modifier?&lt;br /&gt;
! Can use&amp;lt;center&amp;gt;[[Image:Gd&amp;amp;t regardlessoffeaturesize.png]]&amp;lt;/center&amp;gt;modifier?&lt;br /&gt;
! Can be affected by a bonus tolerance?&lt;br /&gt;
! Can be affected by a shift tolerance?&lt;br /&gt;
|-&lt;br /&gt;
| Form&lt;br /&gt;
! [[Straightness]]&lt;br /&gt;
| &amp;lt;center&amp;gt;[[Image:Gd&amp;amp;t straightness.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;big&amp;gt;[[⏤]]&amp;lt;/big&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;[[Unicode|U]]+23E4&amp;lt;/small&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(note 1)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&lt;br /&gt;
| Yes&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(note 1)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(note 5)&amp;lt;/small&amp;gt;&lt;br /&gt;
| Yes&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(note 4)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&lt;br /&gt;
|-&lt;br /&gt;
| Form&lt;br /&gt;
! Planarity ([[Flatness (mathematics)|flatness]])&lt;br /&gt;
| &amp;lt;center&amp;gt;[[Image:Gd&amp;amp;t flatness.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;big&amp;gt;[[⏥]]&amp;lt;/big&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;[[Unicode|U]]+23E5&amp;lt;/small&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
| Yes&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(note 5)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&lt;br /&gt;
|-&lt;br /&gt;
| Form&lt;br /&gt;
! [[Roundness (object)|Circularity]]&lt;br /&gt;
| &amp;lt;center&amp;gt;[[Image:Gd&amp;amp;t circularity.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;big&amp;gt;[[○]]&amp;lt;/big&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;[[Unicode|U]]+25CB&amp;lt;/small&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
| Yes&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(note 5)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&lt;br /&gt;
|-&lt;br /&gt;
| Form&lt;br /&gt;
! [[Cylindricity]]&lt;br /&gt;
| &amp;lt;center&amp;gt;[[Image:Gd&amp;amp;t cylindricity.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;big&amp;gt;[[⌭]]&amp;lt;/big&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;[[Unicode|U]]+232D&amp;lt;/small&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
| Yes&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(note 5)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&lt;br /&gt;
|-&lt;br /&gt;
| Profile&lt;br /&gt;
! Profile of a [[Line (geometry)|line]]&lt;br /&gt;
| &amp;lt;center&amp;gt;[[Image:Gd&amp;amp;t line profile.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;big&amp;gt;[[⌒]]&amp;lt;/big&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;[[Unicode|U]]+2312&amp;lt;/small&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
| Yes&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&lt;br /&gt;
| Yes&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(note 2)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(note 5)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&lt;br /&gt;
| Yes&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(note 3)&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Profile&lt;br /&gt;
! Profile of a [[surface]]&lt;br /&gt;
| &amp;lt;center&amp;gt;[[Image:Gd&amp;amp;t profile.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;big&amp;gt;[[⌓]]&amp;lt;/big&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;[[Unicode|U]]+2313&amp;lt;/small&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
| Yes&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&lt;br /&gt;
| Yes&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(note 2)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(note 5)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&lt;br /&gt;
| Yes&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(note 3)&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Orientation&lt;br /&gt;
! [[Perpendicular]]ity&lt;br /&gt;
| &amp;lt;center&amp;gt;[[Image:Gd&amp;amp;t perpendicularity.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;big&amp;gt;[[⟂]]&amp;lt;/big&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;[[Unicode|U]]+27C2&amp;lt;/small&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(note 1)&amp;lt;/small&amp;gt;&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(note 1)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(note 5)&amp;lt;/small&amp;gt;&lt;br /&gt;
| Yes&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(note 4)&amp;lt;/small&amp;gt;&lt;br /&gt;
| Yes&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(note 3)&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Orientation&lt;br /&gt;
! [[Angle|Angularity]]&lt;br /&gt;
| &amp;lt;center&amp;gt;[[Image:Gd&amp;amp;t angularity.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;big&amp;gt;[[∠]]&amp;lt;/big&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;[[Unicode|U]]+2220&amp;lt;/small&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(note 1)&amp;lt;/small&amp;gt;&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(note 1)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(note 5)&amp;lt;/small&amp;gt;&lt;br /&gt;
| Yes&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(note 4)&amp;lt;/small&amp;gt;&lt;br /&gt;
| Yes&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(note 3)&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Orientation&lt;br /&gt;
! [[Parallel (geometry)|Parallelism]]&lt;br /&gt;
| &amp;lt;center&amp;gt;[[Image:Gd&amp;amp;t parallelism.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;big&amp;gt;[[∥]]&amp;lt;/big&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;[[Unicode|U]]+2225&amp;lt;/small&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(note 1)&amp;lt;/small&amp;gt;&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(note 1)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(note 5)&amp;lt;/small&amp;gt;&lt;br /&gt;
| Yes&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(note 4)&amp;lt;/small&amp;gt;&lt;br /&gt;
| Yes&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(note 3)&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Location&lt;br /&gt;
! [[Symmetry]]&lt;br /&gt;
| &amp;lt;center&amp;gt;[[Image:Gd&amp;amp;t symmetry.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;big&amp;gt;[[⌯]]&amp;lt;/big&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;[[Unicode|U]]+232F&amp;lt;/small&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
| ?&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(note 6)&amp;lt;/small&amp;gt;&lt;br /&gt;
| ?&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(note 6)&amp;lt;/small&amp;gt;&lt;br /&gt;
| ?&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(note 6)&amp;lt;/small&amp;gt;&lt;br /&gt;
| ?&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(note 6)&amp;lt;/small&amp;gt;&lt;br /&gt;
| ?&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(note 6)&amp;lt;/small&amp;gt;&lt;br /&gt;
| ?&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(note 6)&amp;lt;/small&amp;gt;&lt;br /&gt;
| ?&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(note 6)&amp;lt;/small&amp;gt;&lt;br /&gt;
| ?&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(note 6)&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Location&lt;br /&gt;
! [[Position tolerance|Positional Tolerance]]&lt;br /&gt;
| &amp;lt;center&amp;gt;[[Image:Gd&amp;amp;t position.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;big&amp;gt;[[⌖]]&amp;lt;/big&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;[[Unicode|U]]+2316&amp;lt;/small&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(note 4)&amp;lt;/small&amp;gt;&lt;br /&gt;
| Yes&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(note 3)&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Location&lt;br /&gt;
! [[Concentric]]ity&lt;br /&gt;
| &amp;lt;center&amp;gt;[[Image:Gd&amp;amp;t concentricity.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;big&amp;gt;[[◎]]&amp;lt;/big&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;[[Unicode|U]]+25CE&amp;lt;/small&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(note 5)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&lt;br /&gt;
|-&lt;br /&gt;
| [[Run-out]]&lt;br /&gt;
! Circular run-out&lt;br /&gt;
| &amp;lt;center&amp;gt;[[Image:Gd&amp;amp;t runout.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;big&amp;gt;[[↗]]&amp;lt;/big&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;[[Unicode|U]]+2197&amp;lt;/small&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(note 1)&amp;lt;/small&amp;gt;&lt;br /&gt;
| Yes&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(note 5)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&lt;br /&gt;
|-&lt;br /&gt;
| [[Run-out]]&lt;br /&gt;
! Total run-out&lt;br /&gt;
| &amp;lt;center&amp;gt;[[Image:Gd&amp;amp;t totalrunout.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;big&amp;gt;[[⌰]]&amp;lt;/big&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;[[Unicode|U]]+2330&amp;lt;/small&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(note 1)&amp;lt;/small&amp;gt;&lt;br /&gt;
| Yes&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(note 5)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&lt;br /&gt;
| style=&amp;quot;background:silver&amp;quot; | No&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
# When applied to a feature-of-size.&lt;br /&gt;
# Can also be used as a form control without a datum reference.&lt;br /&gt;
# When a datum feature-of-size is referenced with the MMC modifier.&lt;br /&gt;
# When an MMC modifier is used.&lt;br /&gt;
# Automatic per rule #3.&lt;br /&gt;
# The symmetry symbol&#039;s characteristics were not included in the version of the chart that this chart is derived from.  The symmetry symbol was dropped from the Y14.5M standard around 1982 and re-added around 1994.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+ Symbols used in a &amp;quot;feature control frame&amp;quot; to specify a feature&#039;s description, tolerance, modifier and [[datum references]]&lt;br /&gt;
|-&lt;br /&gt;
! Symbol !! Modifier !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Gd&amp;amp;t freestate.png|center]] || Free state || &lt;br /&gt;
|-&lt;br /&gt;
| [[File:Gd&amp;amp;t leastmaterialcondition.png|center]] || Least material condition (LMC) || &lt;br /&gt;
|-&lt;br /&gt;
| [[File:Gd&amp;amp;t maximummaterialcondition.png|center]] || Maximum material condition (MMC) || &lt;br /&gt;
|-&lt;br /&gt;
| [[File:Gd&amp;amp;t projectedtolerancezone.png|center]] || Projected tolerance zone || &lt;br /&gt;
|-&lt;br /&gt;
| [[File:Gd&amp;amp;t regardlessoffeaturesize.png|center]] || Regardless of feature size (RFS) || Not part of the 1994 version. See para. A5, bullet 3. Also para. D3. Also, Figure 3-8.&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Gd&amp;amp;t tangentplane.png|center]] || Tangent plane || &lt;br /&gt;
|-&lt;br /&gt;
| [[File:Gd&amp;amp;t unilateral.png|center]] || Unilateral || Appears in the 2009 version of the standard, and refers to unequal profile distribution.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Datums and datum references ===&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;[[datum (geodesy)|datum]]&#039;&#039;&#039; is a virtual ideal plane, line, point, or axis. A &#039;&#039;&#039;datum feature&#039;&#039;&#039; is a physical feature of a part identified by a &#039;&#039;&#039;datum feature symbol&#039;&#039;&#039; and corresponding &#039;&#039;&#039;datum feature triangle&#039;&#039;&#039;, e.g.,&lt;br /&gt;
	 	&lt;br /&gt;
:&amp;lt;math&amp;gt;{\displaystyle\Box}\!\!\!\!{\scriptstyle\mathsf{A}}\!-\!\!\!-\!\!\!\blacktriangleleft\!\!\!|&amp;lt;/math&amp;gt;&lt;br /&gt;
	 &lt;br /&gt;
These are then referred to by one or more &#039;&#039;&#039;[[datum reference]]s &#039;&#039;&#039; which indicate measurements that should be made with respect to the corresponding datum feature.&lt;br /&gt;
&lt;br /&gt;
== GD&amp;amp;T data exchange ==&lt;br /&gt;
Exchange of geometric dimensioning and tolerancing (GD&amp;amp;T) information between [[CAD]] systems is available on different levels of fidelity for different purposes:&lt;br /&gt;
* In the early days of CAD exchange only lines, texts and symbols were written into the exchange file. A receiving system could display them on the screen or print them out, but only a human could interpret them.&lt;br /&gt;
* &#039;&#039;GD&amp;amp;T presentation&#039;&#039;: On a next higher level the presentation information is enhanced by grouping them together into &#039;&#039;callouts&#039;&#039; for a particular purpose, e.g. a &#039;&#039;datum feature callout&#039;&#039; and a &#039;&#039;datum reference frame&#039;&#039;.  And there is also the information which of the curves in the exchange file are leader, projection or dimension curves and which are used to form the shape of a product.&lt;br /&gt;
* &#039;&#039;GD&amp;amp;T representation&#039;&#039;: Unlike GD&amp;amp;T presentation, the GD&amp;amp;T representation does not deal with how the information is presented to the user but only deal with which element of a shape of a product has which GD&amp;amp;T characteristic. A system supporting GD&amp;amp;T representation may display the GD&amp;amp;T information in some tree and other dialogs and allow the user to directly select and highlight the corresponding feature on the shape of the product, 2D and 3D.&lt;br /&gt;
* Ideally both GD&amp;amp;T presentation and representation are available in the exchange file and are associated with each other.  Then a receiving system can allow a user to select a GD&amp;amp;T callout and get the corresponding feature highlighted on the shape of the product.&lt;br /&gt;
* An enhancement of GD&amp;amp;T representation is defining a formal language for GD&amp;amp;T (similar to a programming language) which also has built-in rules and restrictions for the proper GD&amp;amp;T usage. This is still a research area (see below reference to McCaleb and ISO 10303-1666).&lt;br /&gt;
* &#039;&#039;GD&amp;amp;T validation&#039;&#039;: Based on GD&amp;amp;T representation data (but not on GD&amp;amp;T presentation) and the shape of a product in some useful format (e.g. a [[boundary representation]]), it is possible to validate the completeness and consistency of the GD&amp;amp;T information. The software tool FBTol from the [[Kansas City Plant]] is probably the first one in this area.&lt;br /&gt;
* GD&amp;amp;T representation information can also be used for the software assisted manufacturing planning and cost calculation of parts. See ISO 10303-224 and 238 below.&lt;br /&gt;
&lt;br /&gt;
== GD&amp;amp;T ==&lt;br /&gt;
&lt;br /&gt;
=== ISO TC 10 &#039;&#039;Technical product documentation&#039;&#039; ===&lt;br /&gt;
* ISO 128 &#039;&#039;Technical drawings – Indication of dimensions and tolerances&#039;&#039;&lt;br /&gt;
* ISO 7083 &#039;&#039;Symbols for geometrical tolerancing – Proportions and dimensions&#039;&#039;&lt;br /&gt;
* ISO 13715 &#039;&#039;Technical drawings – Edges of undefined shape – Vocabulary and indications&#039;&#039;&lt;br /&gt;
* ISO 15786 &#039;&#039;Simplified representation and dimensioning of holes&#039;&#039;&lt;br /&gt;
* ISO 16792:2006 &#039;&#039;Technical product documentation—Digital product definition data practices&#039;&#039; (Note: ISO 16792:2006 was derived from ASME Y14.41-2003 by permission of ASME)&lt;br /&gt;
* ISO 2010&lt;br /&gt;
* ISO&lt;br /&gt;
&lt;br /&gt;
=== {{anchor|ISO/TC 213}} ISO/TC 213 &#039;&#039;Dimensional and geometrical product specifications and verification&#039;&#039; ===&lt;br /&gt;
In ISO/TR 14638 &#039;&#039;GPS – Masterplan&#039;&#039; the distinction between fundamental, global, general and complementary GPS standards is made.&lt;br /&gt;
&lt;br /&gt;
* Fundamental GPS standards&lt;br /&gt;
** ISO 8015 &#039;&#039;Concepts, principles and rules&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Global GPS standards&lt;br /&gt;
** ISO 14660-1 &#039;&#039;Geometrical features&#039;&#039;&lt;br /&gt;
** ISO/TS 17, orientation and location&lt;br /&gt;
** ISO 1101 &#039;&#039;Geometrical tolerancing – Tolerances of form, orientation, location and run-out&#039;&#039;&lt;br /&gt;
*** Amendment 1 &#039;&#039;Representation of specifications in the form of a 3D model&#039;&#039;&lt;br /&gt;
** ISO 1119 &#039;&#039;Series of conical tapers and taper angles&#039;&#039;&lt;br /&gt;
** ISO 2692 &#039;&#039;Geometrical tolerancing – Maximum material requirement (MMR), least material requirement (LMR) and reciprocity requirement (RPR)&#039;&#039;&lt;br /&gt;
** ISO 3040 &#039;&#039;Dimensioning and tolerancing – Cones&#039;&#039;&lt;br /&gt;
** ISO 5458 &#039;&#039;Geometrical tolerancing – Positional tolerancing&#039;&#039;&lt;br /&gt;
** ISO 5459 &#039;&#039;Geometrical tolerancing – Datums and datum systems&#039;&#039;&lt;br /&gt;
** ISO 10578 &#039;&#039;Tolerancing of orientation and location – Projected tolerance zone&#039;&#039;&lt;br /&gt;
** ISO 10579 &#039;&#039;Dimensioning and tolerancing – Non-rigid parts&#039;&#039;&lt;br /&gt;
** ISO 14406 &#039;&#039;Extraction&#039;&#039;&lt;br /&gt;
** ISO 22432 &#039;&#039;Features utilized in specification and verification&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* General GPS standards: &#039;&#039;&#039;Areal and profile surface texture&#039;&#039;&#039;&lt;br /&gt;
** ISO 1302 &#039;&#039;Indication of surface texture in technical product documentation&#039;&#039;&lt;br /&gt;
** ISO 3274 &#039;&#039;Surface texture: Profile method – Nominal characteristics of contact (stylus) instruments&#039;&#039;&lt;br /&gt;
** ISO 4287 &#039;&#039;Surface texture: Profile method – Terms, definitions and surface texture parameters&#039;&#039;&lt;br /&gt;
** ISO 4288 &#039;&#039;Surface texture: Profile method – Rules and procedures for the assessment of surface texture&#039;&#039;&lt;br /&gt;
** ISO 8785 &#039;&#039;Surface imperfections – Terms, definitions and parameters&#039;&#039;&lt;br /&gt;
** Form of a surface independent of a datum or datum system. Each of them has a part 1 for the &#039;&#039;Vocabulary and parameters&#039;&#039; and a part 2 for the &#039;&#039;Specification operators&#039;&#039;:&lt;br /&gt;
*** ISO 12180 &#039;&#039;Cylindricity&#039;&#039;&lt;br /&gt;
*** ISO 12181 &#039;&#039;Roundness&#039;&#039;&lt;br /&gt;
*** ISO 12780 &#039;&#039;Straightness&#039;&#039;&lt;br /&gt;
*** ISO 12781 &#039;&#039;Flatness&#039;&#039;&lt;br /&gt;
** ISO 25178 &#039;&#039;Surface texture: Areal&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* General GPS standards: &#039;&#039;&#039;Extraction and filtration techniques&#039;&#039;&#039;&lt;br /&gt;
** ISO/TS 1661 &#039;&#039;Filtration&#039;&#039;&lt;br /&gt;
** ISO 11562 &#039;&#039;Surface texture: Profile method – Metrological characteristics of phase correct filters&#039;&#039;&lt;br /&gt;
** ISO 12085 &#039;&#039;Surface texture: Profile method – Motif parameters&#039;&#039;&lt;br /&gt;
** ISO 13565 &#039;&#039;Profile method; Surfaces having stratified functional properties&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== ASME standards &#039;&#039;American Society of Mechanical Engineers&#039;&#039; ===&lt;br /&gt;
* [[ASME Y14.41-2003]] Digital Product Definition Data Practices&lt;br /&gt;
* ASME Y14.5 - 2009 Dimensioning and Tolerancing&lt;br /&gt;
* ASME Y14.5M-1994 Dimensioning and Tolerancing&lt;br /&gt;
* ASME Y14.5.1M-1994 Mathematical Definition of Dimensioning and Tolerancing Principles&lt;br /&gt;
&lt;br /&gt;
ASME Y14.5.1M-2&lt;br /&gt;
&lt;br /&gt;
=== GD&amp;amp;T standards for data exchange and integration ===&lt;br /&gt;
* [[ISO 10303]] &#039;&#039;Industrial automation systems and integration — Product data representation and exchange&#039;&#039;&lt;br /&gt;
** ISO 10303-47 &#039;&#039;Integrated generic resource: Shape variation tolerances&#039;&#039;&lt;br /&gt;
** ISO/TS 10303-1130 &#039;&#039;Application module: Derived shape element&#039;&#039;&lt;br /&gt;
** ISO/TS 10303-1050 &#039;&#039;Application module: Dimension tolerance&#039;&#039;&lt;br /&gt;
** ISO/TS 10303-1051 &#039;&#039;Application module: Geometric tolerance&#039;&#039;&lt;br /&gt;
** ISO/TS 10303-1052 &#039;&#039;Application module: Default tolerance&#039;&#039;&lt;br /&gt;
** ISO/TS 10303-1666 &#039;&#039;Application module: Extended geometric tolerance&#039;&#039;&lt;br /&gt;
** ISO 10303-203 &#039;&#039;Application protocol: Configuration controlled 3D design of mechanical parts and assemblies&#039;&#039;&lt;br /&gt;
** ISO 10303-210 &#039;&#039;Application protocol: Electronic assembly, interconnection, and packaging design&#039;&#039;&lt;br /&gt;
** ISO 10303-214 &#039;&#039;Application protocol: Core data for automotive mechanical design processes&#039;&#039;&lt;br /&gt;
** ISO 10303-224 &#039;&#039;Application protocol: Mechanical product definition for process planning using machining features&#039;&#039;&lt;br /&gt;
** [[STEP-NC|ISO 10303-238 &#039;&#039;Application protocol: Application interpreted model for computerized numerical controllers&#039;&#039; (STEP-NC)]]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Surface_finish#Specification|Specification of surface finish]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
{{More footnotes|date=April 2010}}&lt;br /&gt;
{{reflist}}&lt;br /&gt;
&lt;br /&gt;
== Further reading ==&lt;br /&gt;
{{ISBN|date=October 2011}}&lt;br /&gt;
*{{cite journal |first1=Michael R. |last1=McCale |title=A Conceptual Data Model of Datum Systems |url=http://nvl.nist.gov/pub/nistpubs/jres/104/4/j44mac.pdf |journal=Journal of Research of the National Institute of Standards and Technology |volume=104 |issue=4 |pages=349–400 |year=1999 |doi=10.6028/jres.104.024}}&lt;br /&gt;
* HENZOLD, Georg. Geometrical Dimensioning and Tolerancing for Design, Manufacturing and Inspection. 2nd Edition, Elsevier, Oxford, UK, 2006.&lt;br /&gt;
*{{cite journal |doi=10.1016/j.cad.2007.06.006 |title=Standardizing the specification, verification, and exchange of product geometry: Research, status and trends |year=2008 |last1=Srinivasan |first1=Vijay |journal=Computer-Aided Design |volume=40 |issue=7 |pages=738–49}}&lt;br /&gt;
* DRAKE JR, Paul J. Dimensioning and Tolerancing Handbook. McGraw-Hill, New York, 1999&lt;br /&gt;
* Neumann, Scott and Al Neumann. GeoTol Pro: A Practical Guide to Geometric Tolerancing per ASME Y14.5-2009. Society of Manufacturing Engineers, Dearborn, MI, 2009. ISBN # 978-0-8726-3865-5&lt;br /&gt;
* Bramble, Kelly L. Geometric Boundaries II, Practical Guide to Interpretation and Application ASME Y14.5-2009, Engineers Edge, 2009&lt;br /&gt;
* {{cite book&lt;br /&gt;
 |title=Design Dimensioning and Tolerancing&lt;br /&gt;
 |last1=Wilson |first1=Bruce A. |authorlink1=&lt;br /&gt;
 |coauthors=&lt;br /&gt;
 |editor1-last= |editor1-first= |editor1-link=&lt;br /&gt;
 |year= 2005 &lt;br /&gt;
 |publisher=Goodheart-Wilcox&lt;br /&gt;
 |location=US&lt;br /&gt;
 |isbn=9781590703281&lt;br /&gt;
 |url=&lt;br /&gt;
 |page=&lt;br /&gt;
 |pages=275&lt;br /&gt;
 |ref=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
{{Commons category|Geometric dimensioning and tolerancing}}&lt;br /&gt;
*[http://www.gwp-ag.at/media/www.gwp-ag.at/org/med_646/811_general_tolerances.pdf General tolerances for linear and angular dimensions according to ISO 2768]&lt;br /&gt;
*[http://www.gd-t.com/map-of-gdt/ Interactive map of GD&amp;amp;T.] jj&lt;br /&gt;
*[http://www.engineersedge.com/training_engineering/What_Is_GD&amp;amp;T.htm What is GD&amp;amp;T]&lt;br /&gt;
*[http://www.tdcofarizona.com/importance_of_gdt_a/267.htm The importance of GD&amp;amp;T]&lt;br /&gt;
*[http://www.etinews.com/gdt_glossary.html GD&amp;amp;T Glossary of Terms and Definitions]&lt;br /&gt;
*[http://www.tec-ease.com/gdt-tips.htm Free GD&amp;amp;T Help and Tips]&lt;br /&gt;
*[http://www.advanceddimensionalmanagement.com/gdt_justification.php Justification for GD&amp;amp;T]&lt;br /&gt;
*[http://www.efunda.com/designstandards/gdt/introduction.cfm GDT: Introduction]&lt;br /&gt;
*[http://www.asme.org/Codes/CertifAccred/Personnel/Levels_Certification_2.cfm ASME Certification]&lt;br /&gt;
*[http://www.tdcofarizona.com/changes_and_additions_to_asme_y14-5_a/272.htm Changes and Additions to ASME Y14.5M]&lt;br /&gt;
&lt;br /&gt;
[[Category:Technical drawing]]&lt;/div&gt;</summary>
		<author><name>5.71.241.248</name></author>
	</entry>
	<entry>
		<id>https://en.formulasearchengine.com/w/index.php?title=Credit_valuation_adjustment&amp;diff=25183</id>
		<title>Credit valuation adjustment</title>
		<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/w/index.php?title=Credit_valuation_adjustment&amp;diff=25183"/>
		<updated>2013-10-17T16:24:50Z</updated>

		<summary type="html">&lt;p&gt;5.71.118.66: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Algorithm&lt;br /&gt;
|class=[[Sorting algorithm]]&lt;br /&gt;
|image=[[File:Bubblesort-edited.png|Static visualization of bubblesort]]&lt;br /&gt;
|data=[[Array data structure|Array]]&lt;br /&gt;
|best-time= &amp;lt;math&amp;gt;O(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
|average-time= &amp;lt;math&amp;gt;O(n^2)&amp;lt;/math&amp;gt;&lt;br /&gt;
|time=&amp;lt;math&amp;gt;O(n^2)&amp;lt;/math&amp;gt;&lt;br /&gt;
|space=&amp;lt;math&amp;gt;O(1)&amp;lt;/math&amp;gt; auxiliary&lt;br /&gt;
|optimal=No&lt;br /&gt;
}}&lt;br /&gt;
&#039;&#039;&#039;Bubble sort&#039;&#039;&#039;, sometimes incorrectly referred to as &#039;&#039;&#039;sinking sort&#039;&#039;&#039;, is a simple [[sorting algorithm]] that works by repeatedly stepping through the list to be sorted, comparing each pair of adjacent items and [[Swap (computer science)|swap]]ping them if they are in the wrong order.  The pass through the list is repeated until no swaps are needed, which indicates that the list is sorted. The algorithm gets its name from the way smaller elements &amp;quot;bubble&amp;quot; to the top of the list. Because it only uses comparisons to operate on elements, it is a [[comparison sort]]. Although the algorithm is simple, most of the other sorting algorithms are more efficient for large lists.&lt;br /&gt;
==Analysis==&lt;br /&gt;
[[File:Bubble-sort-example-300px.gif|300px|thumb|right|An example of bubble sort. Starting from the beginning of the list, compare every adjacent pair, swap their position if they are not in the right order (the latter one is smaller than the former one). After each iteration, one less element (the last one) is needed to be compared until there are no more elements left to be compared.]]&lt;br /&gt;
&lt;br /&gt;
=== Performance ===&lt;br /&gt;
Bubble sort has worst-case and average complexity both &#039;&#039;[[big o notation|О]]&#039;&#039;(&#039;&#039;n&#039;&#039;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;), where &#039;&#039;n&#039;&#039; is the number of items being sorted. There exist many sorting algorithms with substantially better worst-case or average complexity of &#039;&#039;O&#039;&#039;(&#039;&#039;n&#039;&#039;&amp;amp;nbsp;log&amp;amp;nbsp;&#039;&#039;n&#039;&#039;). Even other &#039;&#039;О&#039;&#039;(&#039;&#039;n&#039;&#039;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;) sorting algorithms, such as [[insertion sort]], tend to have better performance than bubble sort. Therefore, bubble sort is not a practical sorting algorithm when &#039;&#039;n&#039;&#039; is large.&lt;br /&gt;
&lt;br /&gt;
The only significant advantage that bubble sort has over most other implementations, even [[quicksort]], but not [[insertion sort]], is that the ability to detect that the list is sorted is efficiently built into the algorithm. Performance of bubble sort over an already-sorted list (best-case) is &#039;&#039;O&#039;&#039;(&#039;&#039;n&#039;&#039;). By contrast, most other algorithms, even those with better [[average-case complexity]], perform their entire sorting process on the set and thus are more complex. However, not only does [[insertion sort]] have this mechanism too, but it also performs better on a list that is substantially sorted (having a small number of [[inversion (discrete mathematics)|inversions]]).&lt;br /&gt;
&lt;br /&gt;
Bubble sort should be avoided in case of large collections. It will not be efficient in case of reverse ordered collection.&lt;br /&gt;
&lt;br /&gt;
===Rabbits and turtles===&lt;br /&gt;
The positions of the elements in bubble sort will play a large part in determining its performance. Large elements at the beginning of the list do not pose a problem, as they are quickly swapped. Small elements towards the end, however, move to the beginning extremely slowly. This has led to these types of elements being named rabbits and turtles, respectively.&lt;br /&gt;
&lt;br /&gt;
Various efforts have been made to eliminate turtles to improve upon the speed of bubble sort. [[Cocktail sort]] is a bi-directional bubble sort that goes from beginning to end, and then reverses itself, going end to beginning. It can move turtles fairly well, but it  retains &#039;&#039;[[Big O notation|O(n&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;)]]&#039;&#039; worst-case complexity. [[Comb sort]] compares elements separated by large gaps, and can move turtles extremely quickly before proceeding to smaller and smaller gaps to smooth out the list. Its average speed is comparable to faster algorithms like [[quicksort]].&lt;br /&gt;
&lt;br /&gt;
===Step-by-step example ===&lt;br /&gt;
&lt;br /&gt;
Let us take the array of numbers &amp;quot;5 1 4 2 8&amp;quot;, and sort the array from lowest number to greatest number using bubble sort. In each step, elements written in &#039;&#039;&#039;bold&#039;&#039;&#039; are being compared.&lt;br /&gt;
Three passes will be required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;First Pass:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
( &#039;&#039;&#039;5&#039;&#039;&#039; &#039;&#039;&#039;1&#039;&#039;&#039; 4 2 8 ) &amp;lt;math&amp;gt;\to&amp;lt;/math&amp;gt; ( &#039;&#039;&#039;1&#039;&#039;&#039; &#039;&#039;&#039;5&#039;&#039;&#039; 4 2 8 ), Here, algorithm compares the first two elements, and swaps since 5 &amp;gt; 1.&amp;lt;br /&amp;gt;&lt;br /&gt;
( 1 &#039;&#039;&#039;5&#039;&#039;&#039; &#039;&#039;&#039;4&#039;&#039;&#039; 2 8 ) &amp;lt;math&amp;gt;\to&amp;lt;/math&amp;gt; ( 1 &#039;&#039;&#039;4&#039;&#039;&#039; &#039;&#039;&#039;5&#039;&#039;&#039; 2 8 ), Swap since 5 &amp;gt; 4 &amp;lt;br /&amp;gt;&lt;br /&gt;
( 1 4 &#039;&#039;&#039;5&#039;&#039;&#039; &#039;&#039;&#039;2&#039;&#039;&#039; 8 ) &amp;lt;math&amp;gt;\to&amp;lt;/math&amp;gt; ( 1 4 &#039;&#039;&#039;2&#039;&#039;&#039; &#039;&#039;&#039;5&#039;&#039;&#039; 8 ), Swap since 5 &amp;gt; 2 &amp;lt;br /&amp;gt;&lt;br /&gt;
( 1 4 2 &#039;&#039;&#039;5&#039;&#039;&#039; &#039;&#039;&#039;8&#039;&#039;&#039; ) &amp;lt;math&amp;gt;\to&amp;lt;/math&amp;gt; ( 1 4 2 &#039;&#039;&#039;5&#039;&#039;&#039; &#039;&#039;&#039;8&#039;&#039;&#039; ), Now, since these elements are already in order (8 &amp;gt; 5), algorithm does not swap them.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Second Pass:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
( &#039;&#039;&#039;1&#039;&#039;&#039; &#039;&#039;&#039;4&#039;&#039;&#039; 2 5 8 ) &amp;lt;math&amp;gt;\to&amp;lt;/math&amp;gt; ( &#039;&#039;&#039;1&#039;&#039;&#039; &#039;&#039;&#039;4&#039;&#039;&#039; 2 5 8 )&amp;lt;br /&amp;gt;&lt;br /&gt;
( 1 &#039;&#039;&#039;4&#039;&#039;&#039; &#039;&#039;&#039;2&#039;&#039;&#039; 5 8 ) &amp;lt;math&amp;gt;\to&amp;lt;/math&amp;gt; ( 1 &#039;&#039;&#039;2&#039;&#039;&#039; &#039;&#039;&#039;4&#039;&#039;&#039; 5 8 ), Swap since 4 &amp;gt; 2 &amp;lt;br /&amp;gt;&lt;br /&gt;
( 1 2 &#039;&#039;&#039;4&#039;&#039;&#039; &#039;&#039;&#039;5&#039;&#039;&#039; 8 ) &amp;lt;math&amp;gt;\to&amp;lt;/math&amp;gt; ( 1 2 &#039;&#039;&#039;4&#039;&#039;&#039; &#039;&#039;&#039;5&#039;&#039;&#039; 8 )&amp;lt;br /&amp;gt;&lt;br /&gt;
( 1 2 4 &#039;&#039;&#039;5&#039;&#039;&#039; &#039;&#039;&#039;8&#039;&#039;&#039; ) &amp;lt;math&amp;gt;\to&amp;lt;/math&amp;gt; ( 1 2 4 &#039;&#039;&#039;5&#039;&#039;&#039; &#039;&#039;&#039;8&#039;&#039;&#039; )&amp;lt;br /&amp;gt;&lt;br /&gt;
Now, the array is already sorted, but our algorithm does not know if it is completed. The algorithm needs one &#039;&#039;&#039;whole&#039;&#039;&#039; pass without &#039;&#039;&#039;any&#039;&#039;&#039; swap to know it is sorted.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Third Pass:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
( &#039;&#039;&#039;1&#039;&#039;&#039; &#039;&#039;&#039;2&#039;&#039;&#039; 4 5 8 ) &amp;lt;math&amp;gt;\to&amp;lt;/math&amp;gt; ( &#039;&#039;&#039;1&#039;&#039;&#039; &#039;&#039;&#039;2&#039;&#039;&#039; 4 5 8 )&amp;lt;br /&amp;gt;&lt;br /&gt;
( 1 &#039;&#039;&#039;2&#039;&#039;&#039; &#039;&#039;&#039;4&#039;&#039;&#039; 5 8 ) &amp;lt;math&amp;gt;\to&amp;lt;/math&amp;gt; ( 1 &#039;&#039;&#039;2&#039;&#039;&#039; &#039;&#039;&#039;4&#039;&#039;&#039; 5 8 )&amp;lt;br /&amp;gt;&lt;br /&gt;
( 1 2 &#039;&#039;&#039;4&#039;&#039;&#039; &#039;&#039;&#039;5&#039;&#039;&#039; 8 ) &amp;lt;math&amp;gt;\to&amp;lt;/math&amp;gt; ( 1 2 &#039;&#039;&#039;4&#039;&#039;&#039; &#039;&#039;&#039;5&#039;&#039;&#039; 8 )&amp;lt;br /&amp;gt;&lt;br /&gt;
( 1 2 4 &#039;&#039;&#039;5&#039;&#039;&#039; &#039;&#039;&#039;8&#039;&#039;&#039; ) &amp;lt;math&amp;gt;\to&amp;lt;/math&amp;gt; ( 1 2 4 &#039;&#039;&#039;5&#039;&#039;&#039; &#039;&#039;&#039;8&#039;&#039;&#039; )&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
=== Pseudocode implementation ===&lt;br /&gt;
The algorithm can be expressed as (0-based array):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pli&amp;quot;&amp;gt;&lt;br /&gt;
procedure bubbleSort( A : list of sortable items )&lt;br /&gt;
   repeat     &lt;br /&gt;
     swapped = false&lt;br /&gt;
     for i = 1 to length(A) - 1 inclusive do:&lt;br /&gt;
       /* if this pair is out of order */&lt;br /&gt;
       if A[i-1] &amp;gt; A[i] then&lt;br /&gt;
         /* swap them and remember something changed */&lt;br /&gt;
         swap( A[i-1], A[i] )&lt;br /&gt;
         swapped = true&lt;br /&gt;
       end if&lt;br /&gt;
     end for&lt;br /&gt;
   until not swapped&lt;br /&gt;
end procedure&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Optimizing bubble sort ===&lt;br /&gt;
The bubble sort algorithm can be easily optimized by observing that the n-th pass finds the n-th largest element and puts it into its final place.  So, the inner loop can avoid looking at the last n-1 items when running for the n-th time:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pli&amp;quot;&amp;gt;&lt;br /&gt;
procedure bubbleSort( A : list of sortable items )&lt;br /&gt;
    n = length(A)&lt;br /&gt;
    repeat&lt;br /&gt;
       swapped = false&lt;br /&gt;
       for i = 1 to n-1 inclusive do&lt;br /&gt;
          if A[i-1] &amp;gt; A[i] then&lt;br /&gt;
             swap(A[i-1], A[i])&lt;br /&gt;
             swapped = true&lt;br /&gt;
          end if&lt;br /&gt;
       end for&lt;br /&gt;
       n = n - 1&lt;br /&gt;
    until not swapped&lt;br /&gt;
end procedure&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More generally, it can happen that more than one element is placed in their final position on a single pass. In particular, after every pass, all elements after the last swap are sorted, and do not need to be checked again. This allows us to skip over a lot of the elements, resulting in about a worst case 50% improvement in comparison count (though no improvement in swap counts), and adds very little complexity because the new code subsumes the &amp;quot;swapped&amp;quot; variable:&lt;br /&gt;
&lt;br /&gt;
To accomplish this in [[pseudocode]] we write the following:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pli&amp;quot;&amp;gt;&lt;br /&gt;
procedure bubbleSort( A : list of sortable items )&lt;br /&gt;
    n = length(A)&lt;br /&gt;
    repeat&lt;br /&gt;
       newn = 0&lt;br /&gt;
       for i = 1 to n-1 inclusive do&lt;br /&gt;
          if A[i-1] &amp;gt; A[i] then&lt;br /&gt;
             swap(A[i-1], A[i])&lt;br /&gt;
             newn = i&lt;br /&gt;
          end if&lt;br /&gt;
       end for&lt;br /&gt;
       n = newn&lt;br /&gt;
    until n = 0&lt;br /&gt;
end procedure&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternate modifications, such as the [[cocktail shaker sort]] attempt to improve on the bubble sort performance while keeping the same idea of repeatedly comparing and swapping adjacent items.&lt;br /&gt;
&lt;br /&gt;
==In practice==&lt;br /&gt;
[[File:Bubble sort animation.gif|thumb|right|280px|A bubble sort, a sorting algorithm that continuously steps through a list, [[Swap (computer science)|swapping]] items until they appear in the correct order.  The list was plotted in a Cartesian coordinate system, with each point (x,y) indicating that the value y is stored at index x.  Then the list would be sorted by Bubble sort according to every pixel&#039;s value. Note that the largest end gets sorted first, with smaller elements taking longer to move to their correct positions.]]&lt;br /&gt;
Although bubble sort is one of the simplest sorting algorithms to understand and implement, its &#039;&#039;[[Big O notation|O(n&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;)]]&#039;&#039; complexity means that its efficiency decreases dramatically on lists of more than a small number of elements.  Even among simple &#039;&#039;O(n&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;)&#039;&#039; sorting algorithms, algorithms like [[insertion sort]] are usually considerably more efficient.&lt;br /&gt;
&lt;br /&gt;
Due to its simplicity, bubble sort is often used to introduce the concept of an algorithm, or a sorting algorithm, to introductory [[computer science]] students. However, some researchers such as [[Owen Astrachan]] have gone to great lengths to disparage bubble sort and its continued popularity in computer science education, recommending that it no longer even be taught.&amp;lt;ref name=&amp;quot;Astrachan2003&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The [[Jargon file]], which famously calls [[bogosort]] &amp;quot;the archetypical [sic] perversely awful algorithm&amp;quot;, also calls bubble sort &amp;quot;the generic &#039;&#039;&#039;bad&#039;&#039;&#039; algorithm&amp;quot;.&amp;lt;ref&amp;gt;http://www.jargon.net/jargonfile/b/bogo-sort.html&amp;lt;/ref&amp;gt; [[Donald Knuth]], in his famous book &#039;&#039;[[The Art of Computer Programming]]&#039;&#039;, concluded that &amp;quot;the bubble sort seems to have nothing to recommend it, except a catchy name and the fact that it leads to some interesting theoretical problems&amp;quot;, some of which he then discusses.&amp;lt;ref name=&amp;quot;Knuth&amp;quot;&amp;gt;[[Donald Knuth]]. &#039;&#039;[[The Art of Computer Programming]]&#039;&#039;, Volume 3: &#039;&#039;Sorting and Searching&#039;&#039;, Second Edition. Addison-Wesley, 1998. ISBN 0-201-89685-0. Pages 106&amp;amp;ndash;110 of section 5.2.2: Sorting by Exchanging.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bubble sort is [[Asymptotic notation|asymptotically]] equivalent in running time to [[insertion sort]] in the worst case, but the two algorithms differ greatly in the number of swaps necessary. Experimental results such as those of Astrachan have also shown that [[insertion sort]] performs considerably better even on random lists. For these reasons many modern algorithm textbooks avoid using the bubble sort algorithm in favor of insertion sort.&lt;br /&gt;
&lt;br /&gt;
Bubble sort also interacts poorly with modern CPU hardware. It requires at least twice as many writes as insertion sort, twice as many cache misses, and asymptotically more [[branch prediction|branch mispredictions]]. Experiments by Astrachan sorting strings in Java show bubble sort to be roughly 5 times slower than [[insertion sort]] and 40% slower than [[selection sort]].&amp;lt;ref name=&amp;quot;Astrachan2003&amp;quot;&amp;gt;Owen Astrachan. Bubble Sort: An Archaeological Algorithmic Analysis. SIGCSE 2003 Hannan Akhtar . [http://www.cs.duke.edu/~ola/papers/bubble.pdf (pdf)]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In computer graphics it is popular for its capability to detect a very small error (like swap of just two elements) in almost-sorted arrays and fix it with just linear complexity (2n). For example, it is used in a polygon filling algorithm, where bounding lines are sorted by their x coordinate at a specific scan line (a line parallel to x axis) and with incrementing y their order changes (two elements are swapped) only at intersections of two lines.&lt;br /&gt;
&lt;br /&gt;
== Variations ==&lt;br /&gt;
*[[Odd-even sort]] is a parallel version of bubble sort, for message passing systems.&lt;br /&gt;
*[[Cocktail sort]] is another parallel version of the bubble sort&lt;br /&gt;
*In some cases, the sort works from right to left (the opposite direction), which is more appropriate for partially sorted lists, or lists with unsorted items added to the end.&lt;br /&gt;
&lt;br /&gt;
===Alone bubble sort===&lt;br /&gt;
&#039;&#039;Alone bubble sort&#039;&#039; is a 1992 modification{{cn|date=September 2013}} of the simple bubble sorting algorithm. Unlike the normal bubble sort where the loop resets after every performed swap of elements, in the alone bubble sort, the loop index only returns back by one step thus allowing the swapping to continue until a smaller value element in the array is reached. The following is the alone bubble realization (the algorithm only) in Pascal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Pascal&amp;quot;&amp;gt;&lt;br /&gt;
    f:=false;&lt;br /&gt;
    for x:=1 to max-1 do&lt;br /&gt;
        if a[x]&amp;gt;a[x+1] then&lt;br /&gt;
            begin&lt;br /&gt;
                if f=false then d:=x;&lt;br /&gt;
                f:=true;&lt;br /&gt;
                t:=a[x];&lt;br /&gt;
                a[x]:=a[x+1];&lt;br /&gt;
                a[x+1]:=t;&lt;br /&gt;
                if x&amp;gt;1 then dec(x,2) else x:=0;&lt;br /&gt;
            end&lt;br /&gt;
        else&lt;br /&gt;
            if f=true then&lt;br /&gt;
                begin&lt;br /&gt;
                    x:=d;&lt;br /&gt;
                    f:=false;&lt;br /&gt;
                end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Debate Over Name ==&lt;br /&gt;
&lt;br /&gt;
Bubble sort has occasionally been referred to as a &amp;quot;sinking sort,&amp;quot; including by the National Institute of Standards and Technology. [http://xlinux.nist.gov/dads/HTML/bubblesort.html]&lt;br /&gt;
&lt;br /&gt;
However, in Donald Knuth&#039;s &#039;&#039;The Art of Computer Programming&#039;&#039;, Volume 3: &#039;&#039;Sorting and Searching&#039;&#039; he states in section 5.2.1 &#039;Sorting by Insertion&#039;, that [the value] &amp;quot;settles to its proper level&amp;quot; this method of sorting has often been called the &#039;&#039;sifting&#039;&#039; or &#039;&#039;sinking&#039;&#039; technique. Furthermore the &#039;&#039;larger&#039;&#039; values might be regarded as &#039;&#039;heavier&#039;&#039; and therefore be seen to progressively &#039;&#039;sink&#039;&#039; to the &#039;&#039;bottom&#039;&#039; of the list.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* [[Donald Knuth]]. &#039;&#039;The Art of Computer Programming&#039;&#039;, Volume 3: &#039;&#039;Sorting and Searching&#039;&#039;, Third Edition. Addison-Wesley, 1997. ISBN 0-201-89685-0. Pages 106&amp;amp;ndash;110 of section 5.2.2: Sorting by Exchanging.&lt;br /&gt;
* [[Thomas H. Cormen]], [[Charles E. Leiserson]], [[Ronald L. Rivest]], and [[Clifford Stein]]. &#039;&#039;[[Introduction to Algorithms]]&#039;&#039;, Second Edition. MIT Press and McGraw-Hill, 2001. ISBN 0-262-03293-7. Problem 2-2, pg.38.&lt;br /&gt;
* [https://www.cs.tcd.ie/publications/tech-reports/reports.05/TCD-CS-2005-57.pdf Sorting in the Presence of Branch Prediction and Caches]&lt;br /&gt;
*Fundamentals of Data Structures by Ellis Horowitz, [[Sartaj Sahni]] and Susan Anderson-Freed ISBN 81-7371-605-6&lt;br /&gt;
&lt;br /&gt;
== External links==&lt;br /&gt;
{{wikibooks|Algorithm implementation|Sorting/Bubble_sort|Bubble sort}}&lt;br /&gt;
{{commons category|Bubble sort}}&lt;br /&gt;
{{wikiversity|Bubble sort}}&lt;br /&gt;
* {{cite web | url=http://codecodex.com/wiki/Bubble_sort | title= Bubble Sort implemented in 34 languages}}&lt;br /&gt;
* {{cite web | url=http://www.sorting-algorithms.com/bubble-sort |title = Animated Sorting Algorithms: Bubble Sort | author= David R. Martin}} –  graphical demonstration and discussion of bubble sort&lt;br /&gt;
* {{cite web | url= http://lecture.ecc.u-tokyo.ac.jp/~ueda/JavaApplet/BubbleSort.html |title= Lafore&#039;s Bubble Sort}} (Java applet animation)&lt;br /&gt;
* {{OEIS|A008302}} Table (statistics) of the number of permutations of [n] that need k pair-swaps during the sorting. &lt;br /&gt;
&lt;br /&gt;
{{sorting}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Articles with example pseudocode]]&lt;br /&gt;
[[Category:Sorting algorithms]]&lt;br /&gt;
[[Category:Comparison sorts]]&lt;br /&gt;
[[Category:Stable sorts]]&lt;br /&gt;
&lt;br /&gt;
[[no:Sorteringsalgoritme#Boblesortering]]&lt;/div&gt;</summary>
		<author><name>5.71.118.66</name></author>
	</entry>
</feed>