<?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=165.91.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=165.91.0.0%2F16"/>
	<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/wiki/Special:Contributions/165.91.0.0/16"/>
	<updated>2026-07-05T14:52:25Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.47.0-wmf.7</generator>
	<entry>
		<id>https://en.formulasearchengine.com/w/index.php?title=Enthalpy_of_vaporization&amp;diff=221501</id>
		<title>Enthalpy of vaporization</title>
		<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/w/index.php?title=Enthalpy_of_vaporization&amp;diff=221501"/>
		<updated>2014-11-11T17:49:46Z</updated>

		<summary type="html">&lt;p&gt;165.91.184.166: /* Other common substances */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hello. Allow me [http://www.nutrition411.com/patient-education-materials/grocery-shopping-and-food-preparation/item/889-diet-plans-with-meal-delivery/ introduce] the author. Her title is Emilia Shroyer but it&#039;s not the most feminine title out there. Bookkeeping is what I do. His wife doesn&#039;t like it the way he does  [http://Www.Details.com/health-fitness/diet/201208/diets-that-deliver-meal-delivery-plans-nutrition healthy] [http://Www.Cbsnews.com/news/diet-plan-review-best-ways-to-lose-weight/ food delivery] but what he truly likes doing is to do aerobics and he&#039;s been performing it for fairly a whilst. North Dakota is where  diet meal delivery me and my husband  meal delivery service live.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Feel free to visit my homepage ... healthy food delivery ([http://bit.ly/1pABYYJ simply click the up coming post])&lt;/div&gt;</summary>
		<author><name>165.91.184.166</name></author>
	</entry>
	<entry>
		<id>https://en.formulasearchengine.com/w/index.php?title=Limit_set&amp;diff=249007</id>
		<title>Limit set</title>
		<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/w/index.php?title=Limit_set&amp;diff=249007"/>
		<updated>2014-06-01T15:35:04Z</updated>

		<summary type="html">&lt;p&gt;165.91.114.83: /* Definition for flows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Alyson Meagher is the name  [http://medialab.zendesk.com/entries/54181460-Will-You-Often-End-Up-Bored-Try-One-Of-These-Hobby-Ideas- authentic psychic readings] her parents gave her but she doesn&#039;t like when people use her complete title. To perform lacross is one of the things she loves most. Her family members lives in Ohio but her spouse desires them to move. Office supervising is exactly where her primary income comes from but she&#039;s currently utilized for an additional 1.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Here is my page: free tarot [http://www.publicpledge.com/blogs/post/7034 love psychic readings] ([https://www.machlitim.org.il/subdomain/megila/end/node/12300 cool training])&lt;/div&gt;</summary>
		<author><name>165.91.114.83</name></author>
	</entry>
	<entry>
		<id>https://en.formulasearchengine.com/w/index.php?title=Biharmonic_equation&amp;diff=244151</id>
		<title>Biharmonic equation</title>
		<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/w/index.php?title=Biharmonic_equation&amp;diff=244151"/>
		<updated>2014-04-29T18:14:00Z</updated>

		<summary type="html">&lt;p&gt;165.91.114.83: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Marvella is what you can call her but it&#039;s not the most female name out there. To gather cash is 1 of the things I adore most. For years he&#039;s been living in North Dakota and his family enjoys it. Since she was 18 she&#039;s been operating as a receptionist but her promotion never comes.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Feel free to surf to my web site: [http://www.noonptm.com/fox/upload/index.php?do=/profile-3715/info/ http://www.noonptm.com]&lt;/div&gt;</summary>
		<author><name>165.91.114.83</name></author>
	</entry>
	<entry>
		<id>https://en.formulasearchengine.com/w/index.php?title=First_moment_of_area&amp;diff=248384</id>
		<title>First moment of area</title>
		<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/w/index.php?title=First_moment_of_area&amp;diff=248384"/>
		<updated>2014-02-20T07:04:00Z</updated>

		<summary type="html">&lt;p&gt;165.91.149.72: added references&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It&#039;s easy to make money online.&lt;br /&gt;
&lt;br /&gt;
 There is truth to the fact that you can start making money on the [http://ganhardinheironainternet.Comoganhardinheiro101.com/ Internet] as soon as you&#039;re done with this article. After all, so many others are making money online, why not you? Keep your mind open and you can make a lot of money. As you [http://www.comoganhardinheiro101.com/perguntas-frequentes/ como ganhar dinheiro pela internet] can see, there are many ways to approach the world of online income. With various streams of income available, you are sure to find one, or two, that can help you with your income needs. Take this information to heart, put it to use and build your own online success story. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;fee to watch your webinar at their convenience.  If you are you looking for more info about [http://ganhardinheironainternet.comoganhardinheiro101.com como ganhar dinheiro na internet] stop by http://ganhardinheironainternet.comoganhardinheiro101.com Once it is in place, [http://www.comoganhardinheiro101.com/tag/negocio-mais-rentavel-da-internet/ como ganhar dinheiro] promotion and possibly answering questions will be your only tasks. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Getting paid money to work online isn&#039;t the easiest thing to do in the world, but it is possible. If this is something you wish to work with, then the tips presented above should have helped you. Take some time, do things the right way and then you can succeed. Start your online [http://www.comoganhardinheiro101.com/slide-central/ como conseguir dinheiro] earning today by following the great advice discussed in this article.&lt;br /&gt;
&lt;br /&gt;
 Earning money is not as hard as it may seem, you just need to know how to get started. By choosing to put your right foot forward, you are heading off to a great start earning money to make ends meet.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Make money online by selling  como ganhar dinheiro your talents. Good music is always in demand and with today&#039;s technological advances, anyone with musical talent can make music and offer it for sale [http://www.comoganhardinheiro101.com/?p=4 como ganhar dinheiro] to a broad audience. By setting up your own website and using social media for promotion, you can share your music with others and sell downloads with a free PayPal account.&lt;/div&gt;</summary>
		<author><name>165.91.149.72</name></author>
	</entry>
	<entry>
		<id>https://en.formulasearchengine.com/w/index.php?title=Standard_gravitational_parameter&amp;diff=7207</id>
		<title>Standard gravitational parameter</title>
		<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/w/index.php?title=Standard_gravitational_parameter&amp;diff=7207"/>
		<updated>2014-01-31T01:12:27Z</updated>

		<summary type="html">&lt;p&gt;165.91.183.148: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In [[astrodynamics]] the &#039;&#039;&#039;characteristic energy&#039;&#039;&#039; (&amp;lt;math&amp;gt;C_3\,\!&amp;lt;/math&amp;gt;) is a measure of the excess [[specific energy]] over that required to just barely escape from a massive body. The units are [[length]]&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;[[time]]&amp;lt;sup&amp;gt;-2&amp;lt;/sup&amp;gt;, i.e., [[energy]] per [[mass]].&lt;br /&gt;
&lt;br /&gt;
Every object in a [[two-body problem|2-body]] [[ballistics|ballistic]] trajectory has a constant [[specific orbital energy]] &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt; equal to the sum of its kinetic and potential energy:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\tfrac{1}{2} v^2 - \mu/r = constant = \tfrac{1}{2} C_3&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\mu = GM&amp;lt;/math&amp;gt; is the [[standard gravitational parameter]] of the massive body with mass &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; is the radial distance from its center. As an object in an escape trajectory moves outward, its kinetic energy decreases as its potential energy (which is always negative) increases, maintaining a constant sum.&lt;br /&gt;
&lt;br /&gt;
Characteristic energy can be computed as:&lt;br /&gt;
:&amp;lt;math&amp;gt;C_3=v_{\infty}^2\,\!&amp;lt;/math&amp;gt;&lt;br /&gt;
where &amp;lt;math&amp;gt;v_{\infty}&amp;lt;/math&amp;gt; is the [[asymptotic]] [[Kinetic energy|velocity]] at infinite distance. Note that, since the kinetic energy is &amp;lt;math&amp;gt;\tfrac{1}{2} mv^2&amp;lt;/math&amp;gt;, C&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; is in fact &#039;&#039;&#039;twice&#039;&#039;&#039; the [[specific orbital energy]] (&amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt;) of the escaping object.&lt;br /&gt;
&lt;br /&gt;
==Non-escape trajectory==&lt;br /&gt;
A spacecraft with insufficient energy to escape will remain in a closed orbit (unless it intersects the [[central body]]) with:&lt;br /&gt;
:&amp;lt;math&amp;gt;C_3&amp;lt;0\,&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Parabolic trajectory==&lt;br /&gt;
A spacecraft leaving the [[central body]] on a [[parabolic trajectory]] has exactly the energy needed to escape and no more:&lt;br /&gt;
:&amp;lt;math&amp;gt;C_3=0\,&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hyperbolic trajectory==&lt;br /&gt;
A spacecraft that is leaving the [[central body]] on a [[hyperbolic trajectory]] has more than enough energy to escape:&lt;br /&gt;
:&amp;lt;math&amp;gt;C_3={\mu\over{a}}\,&amp;lt;/math&amp;gt;&lt;br /&gt;
where&lt;br /&gt;
:&amp;lt;math&amp;gt;\mu\,=GM&amp;lt;/math&amp;gt; is the [[standard gravitational parameter]],&lt;br /&gt;
:&amp;lt;math&amp;gt;a\,&amp;lt;/math&amp;gt; is the [[semi-major axis]] of the [[orbit]]&#039;s [[hyperbola]].&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
[[MAVEN]], a [[Mars]]-bound spacecraft, was launched into a [[heliocentric orbit]] with a characteristic energy of 12.2 km&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;sec&amp;lt;sup&amp;gt;-2 &amp;lt;/sup&amp;gt;with respect to the Earth.&amp;lt;ref&amp;gt;[http://www.nasaspaceflight.com/2013/11/atlasv-launch-maven-mars-mission Atlas V set to launch MAVEN on Mars mission, nasaspaceflight.com, 17 November 2013.]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*[[Specific orbital energy]]&lt;br /&gt;
*[[Orbit]]&lt;br /&gt;
*[[Parabolic trajectory]]&lt;br /&gt;
*[[Hyperbolic trajectory]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
*{{cite book | last=Wie | first=Bong | title=Space Vehicle Dynamics and Control | publisher=[[American Institute of Aeronautics and Astronautics]] | location=[[Reston, Virginia]] | date=1998 | series=AIAA Education Series | chapter=Orbital Dynamics | isbn=1-56347-261-9 | accessdate=2009-07-05}}&lt;br /&gt;
&lt;br /&gt;
==Footnotes==&lt;br /&gt;
{{Reflist}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Astrodynamics]]&lt;br /&gt;
[[Category:Orbits]]&lt;br /&gt;
[[Category:Energy (physics)]]&lt;/div&gt;</summary>
		<author><name>165.91.183.148</name></author>
	</entry>
	<entry>
		<id>https://en.formulasearchengine.com/w/index.php?title=Product_integral&amp;diff=17290</id>
		<title>Product integral</title>
		<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/w/index.php?title=Product_integral&amp;diff=17290"/>
		<updated>2013-11-20T19:39:41Z</updated>

		<summary type="html">&lt;p&gt;165.91.114.83: /* Results */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;Berendsen thermostat&#039;&#039;&#039;&amp;lt;ref&amp;gt;{{cite journal | first=H. J. C. | last=Berendsen | coauthors=Postma, J. P. M.; van Gunsteren, W. F.; DiNola, A.; Haak, J. R. | journal=Journal of Chemical Physics | title=Molecular-Dynamics with Coupling to an External Bath | year=1984 | volume=81 | issue=8 | pages=3684–3690 | doi=10.1063/1.448118 |bibcode = 1984JChPh..81.3684B }}&amp;lt;/ref&amp;gt; is an algorithm to re-scale the velocities of particles in [[molecular dynamics]] simulations to control the simulation temperature.&lt;br /&gt;
&lt;br /&gt;
==Basic Description==&lt;br /&gt;
In this scheme, the system is weakly coupled to a [[heat bath]] with some temperature. The [[thermostat]] suppresses fluctuations of the [[kinetic energy]] of the system and therefore cannot produce trajectories consistent with the [[canonical ensemble]]. The temperature of the system is corrected such that the deviation exponentially decays with some time constant &amp;lt;math&amp;gt;\tau &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\tfrac{dT}{dt}=\tfrac{T_0-T}{\tau}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Though the thermostat does not generate a correct [[canonical ensemble]] (especially for small systems), for large systems on the order of hundreds or thousands of atoms/molecules, the approximation yields roughly correct results for most calculated properties. The scheme is widely used due to the efficiency with which it relaxes a system to some target (bath) temperature. In many instances, systems are initially equilibrated using the Berendsen scheme, while properties are calculated using the widely known [[Nosé-Hoover thermostat]], which correctly generates trajectories consistent with a canonical ensemble.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{physics-stub}}&lt;br /&gt;
[[Category:Molecular dynamics]]&lt;/div&gt;</summary>
		<author><name>165.91.114.83</name></author>
	</entry>
	<entry>
		<id>https://en.formulasearchengine.com/w/index.php?title=Subset&amp;diff=940</id>
		<title>Subset</title>
		<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/w/index.php?title=Subset&amp;diff=940"/>
		<updated>2013-10-31T07:40:54Z</updated>

		<summary type="html">&lt;p&gt;165.91.12.24: /* The symbols ⊂ and ⊃ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{about|the data type|other uses|String (disambiguation)}}&lt;br /&gt;
{{one source|date=January 2010}}&lt;br /&gt;
&lt;br /&gt;
In [[computer programming]], a &#039;&#039;&#039;string&#039;&#039;&#039; is traditionally a [[sequence]] of [[Character (computing)|characters]], either as a [[literal (computer programming)|literal constant]] or as some kind of variable. The latter may allow its elements to be mutated and/or the length changed, or it may be fixed (after creation). A string is generally understood as a [[data type]] and is often implemented as an [[array data structure|array]] of [[byte]]s (or [[word (computer architecture)|word]]s) that stores a sequence of elements, typically characters, using some [[character encoding]]. A string may also denote more general [[array (data type)|array]]s or other sequence (or [[List (abstract data type)|list]]) data types and structures.&lt;br /&gt;
&lt;br /&gt;
Depending on programming language and precise data type used, a [[variable (programming)|variable]] declared to be a string may either cause storage in memory to be statically allocated for a predetermined maximum length or employ dynamic allocation to allow it to hold variable number of elements.&lt;br /&gt;
&lt;br /&gt;
When a string appears literally in [[source code]], it is known as a [[string literal]] and has a representation that denotes it as such.&lt;br /&gt;
&lt;br /&gt;
In [[formal language]]s, which are used in [[mathematical logic]] and [[theoretical computer science]], a string is a finite sequence of [[symbol (formal)|symbol]]s that are chosen from a [[set (mathematics)|set]] called an [[alphabet (computer science)|alphabet]].&lt;br /&gt;
&lt;br /&gt;
== Formal theory ==&lt;br /&gt;
{{See also|Tuple}}&lt;br /&gt;
&lt;br /&gt;
Let Σ be a [[empty set|non-empty]] [[finite set]] of symbols (alternatively called characters), called the &#039;&#039;alphabet&#039;&#039;. No assumption is made about the nature of the symbols. A &#039;&#039;&#039;string&#039;&#039;&#039; (or &#039;&#039;&#039;word&#039;&#039;&#039;) over Σ is any finite [[sequence]] of symbols from Σ.&amp;lt;ref name=&amp;quot;partee&amp;quot;&amp;gt;{{cite book |author1=Barbara H. Partee |author2=Alice ter Meulen |author3=Robert E. Wall |title=Mathematical Methods in Linguistics |publisher=Kluwer |year=1990}}&amp;lt;/ref&amp;gt; For example, if Σ = {0,&amp;amp;nbsp;1}, then &#039;&#039;01011&#039;&#039; is a string over Σ.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;[[length]]&#039;&#039; of a string is the number of symbols in the string (the length of the sequence) and can be any [[non-negative integer]].  The &#039;&#039;[[empty string]]&#039;&#039; is the unique string over Σ of length 0, and is denoted &#039;&#039;ε&#039;&#039; or &#039;&#039;λ&#039;&#039;.&amp;lt;ref name=&amp;quot;partee&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The set of all strings over Σ of length &#039;&#039;n&#039;&#039; is denoted Σ&amp;lt;sup&amp;gt;&#039;&#039;n&#039;&#039;&amp;lt;/sup&amp;gt;.  For example, if Σ = {0, 1}, then Σ&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; = {00, 01, 10, 11}.  Note that Σ&amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt; = {ε} for any alphabet Σ.&lt;br /&gt;
&lt;br /&gt;
The set of all strings over Σ of any length is the [[Kleene star|Kleene closure]] of Σ and is denoted Σ*.  In terms of Σ&amp;lt;sup&amp;gt;&#039;&#039;n&#039;&#039;&amp;lt;/sup&amp;gt;,&lt;br /&gt;
:&amp;lt;math&amp;gt;\Sigma^{*} = \bigcup_{n \in \N} \Sigma^{n}&amp;lt;/math&amp;gt;&lt;br /&gt;
For example, if Σ = {0, 1}, Σ* = {ε, 0, 1, 00, 01, 10, 11, 000, 001, 010, 011, ...}.  Although Σ* itself is [[countably infinite]], all elements of Σ* have finite length.&lt;br /&gt;
&lt;br /&gt;
A set of strings over Σ (i.e. any [[subset]] of Σ*) is called a &#039;&#039;formal language&#039;&#039; over Σ.  For example, if Σ = {0, 1}, the set of strings with an even number of zeros ({ε, 1, 00, 11, 001, 010, 100, 111, 0000, 0011, 0101, 0110, 1001, 1010, 1100, 1111, ...}) is a formal language over Σ.&lt;br /&gt;
&lt;br /&gt;
=== Concatenation and substrings ===&lt;br /&gt;
&#039;&#039;[[Concatenation]]&#039;&#039; is an important [[binary operation]] on Σ*.  For any two strings &#039;&#039;s&#039;&#039; and &#039;&#039;t&#039;&#039; in Σ*, their concatenation is defined as the sequence of symbols in &#039;&#039;s&#039;&#039; followed by the sequence of characters in &#039;&#039;t&#039;&#039;, and is denoted &#039;&#039;st&#039;&#039;.  For example, if Σ = {a, b, ..., z}, &#039;&#039;s&#039;&#039; = &amp;lt;tt&amp;gt;bear&amp;lt;/tt&amp;gt;, and &#039;&#039;t&#039;&#039; = &amp;lt;tt&amp;gt;hug&amp;lt;/tt&amp;gt;, then &#039;&#039;st&#039;&#039; = &amp;lt;tt&amp;gt;bearhug&amp;lt;/tt&amp;gt; and &#039;&#039;ts&#039;&#039; = &amp;lt;tt&amp;gt;hugbear&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
String concatenation is an [[associative]], but non-[[commutative]] operation. The empty string serves as the [[identity element]]; for any string &#039;&#039;s&#039;&#039;, ε&#039;&#039;s&#039;&#039; = &#039;&#039;s&#039;&#039;ε = &#039;&#039;s&#039;&#039;.  Therefore, the set Σ* and the concatenation operation form a [[monoid]], the [[free monoid]] generated by Σ.  In addition, the length function defines a [[monoid homomorphism]] from Σ* to the non-negative integers (that is, a function &amp;lt;math&amp;gt;L: \Sigma^{*} \mapsto \mathbb{N}_0&amp;lt;/math&amp;gt;, such that &amp;lt;math&amp;gt;L(st)=L(s)+L(t)\quad \forall s,t\in\Sigma^*&amp;lt;/math&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
A string &#039;&#039;s&#039;&#039; is said to be a &#039;&#039;[[substring]]&#039;&#039; or &#039;&#039;factor&#039;&#039; of &#039;&#039;t&#039;&#039; if there exist (possibly empty) strings &#039;&#039;u&#039;&#039; and &#039;&#039;v&#039;&#039; such that &#039;&#039;t&#039;&#039; = &#039;&#039;usv&#039;&#039;.  The [[binary relation|relation]] &amp;quot;is a substring of&amp;quot; defines a [[partial order]] on Σ*, the [[least element]] of which is the empty string.&lt;br /&gt;
&lt;br /&gt;
=== Prefixes and suffixes ===&lt;br /&gt;
A string &#039;&#039;s&#039;&#039; is said to be a [[Substring#Prefix|prefix]] of &#039;&#039;t&#039;&#039; if there exists a string &#039;&#039;u&#039;&#039; such that &#039;&#039;t&#039;&#039; = &#039;&#039;su&#039;&#039;. If &#039;&#039;u&#039;&#039; is nonempty, &#039;&#039;s&#039;&#039; is said to be a &#039;&#039;proper&#039;&#039; prefix of &#039;&#039;t&#039;&#039;. Symmetrically, a string &#039;&#039;s&#039;&#039; is said to be a [[Substring#Suffix|suffix]] of &#039;&#039;t&#039;&#039; if there exists a string &#039;&#039;u&#039;&#039; such that &#039;&#039;t&#039;&#039; = &#039;&#039;us&#039;&#039;. If &#039;&#039;u&#039;&#039; is nonempty, &#039;&#039;s&#039;&#039; is said to be a &#039;&#039;proper&#039;&#039; suffix of &#039;&#039;t&#039;&#039;. Suffixes and prefixes are substrings of &#039;&#039;t&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Rotations ===&lt;br /&gt;
A string &#039;&#039;s&#039;&#039; = &#039;&#039;uv&#039;&#039; is said to be a rotation of &#039;&#039;t&#039;&#039; if &#039;&#039;t&#039;&#039; = &#039;&#039;vu&#039;&#039;. For example, if Σ = {0, 1} the string 0011001 is a rotation of 0100110, where u = 00110 and v = 01.&lt;br /&gt;
&lt;br /&gt;
=== Reversal ===&lt;br /&gt;
The reverse of a string is a string with the same symbols but in reverse order. For example, if &#039;&#039;s&#039;&#039; = abc (where a, b, and c are symbols of the alphabet), then the reverse of &#039;&#039;s&#039;&#039; is cba. A string that is the reverse of itself (e.g., &#039;&#039;s&#039;&#039; = madam) is called a [[palindrome]], which also includes the empty string and all strings of length 1.&lt;br /&gt;
&lt;br /&gt;
=== Lexicographical ordering ===&lt;br /&gt;
It is often useful to define an [[order theory|ordering]] on a set of strings. If the alphabet Σ has a [[total order]] (cf. [[alphabetical order]]) one can define a total order on Σ* called [[lexicographical order]]. For example, if Σ = {0, 1} and 0 &amp;lt; 1, then the lexicographical order on Σ* includes the relationships ε &amp;lt; 0 &amp;lt; 00 &amp;lt; 000 &amp;lt; ... &amp;lt; 0001 &amp;lt; 001 &amp;lt; 01 &amp;lt; 010 &amp;lt; 011 &amp;lt; 0110 &amp;lt; 01111 &amp;lt; 1 &amp;lt; 10 &amp;lt; 100 &amp;lt; 101 &amp;lt; 111 &amp;lt; 1111 &amp;lt; 11111 ...&lt;br /&gt;
&lt;br /&gt;
=== String operations ===&lt;br /&gt;
A number of additional operations on strings commonly occur in the formal theory. These are given in the article on [[string operations]].&lt;br /&gt;
&lt;br /&gt;
=== Topology ===&lt;br /&gt;
Strings admit the following interpretation as nodes on a graph:&lt;br /&gt;
&lt;br /&gt;
* Fixed-length strings can be viewed as nodes on a [[hypercube]]&lt;br /&gt;
* Variable-length strings (of finite length) can be viewed as nodes on the [[k-ary tree|&#039;&#039;k&#039;&#039;-ary tree]], where &#039;&#039;k&#039;&#039; is the number of symbols in Σ&lt;br /&gt;
* Infinite strings can be viewed as infinite paths on the &#039;&#039;[[K-ary tree|k]]&#039;&#039;[[K-ary tree|-ary tree]].&lt;br /&gt;
&lt;br /&gt;
The natural topology on the set of fixed-length strings or variable length strings is the discrete topology, but the natural topology on the set of infinite strings is the [[limit topology]], viewing the set of infinite strings as the [[inverse limit]] of the sets of finite strings. This is the construction used for the [[p-adic|&#039;&#039;p&#039;&#039;-adic numbers]] and some constructions of the [[Cantor set]], and yields the same topology.&lt;br /&gt;
&lt;br /&gt;
[[Isomorphism]]s between string representations of topologies can be found by normalizing according to the [[lexicographically minimal string rotation]].&lt;br /&gt;
&lt;br /&gt;
== String datatypes ==&lt;br /&gt;
{{See also|Comparison of programming languages (string functions)}}&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;string datatype&#039;&#039;&#039; is a datatype modeled on the idea of a formal string. Strings are such an important and useful datatype that they are implemented in nearly every [[programming language]]. In some languages they are available as [[primitive type]]s and in others as [[composite type]]s. The [[syntax]] of most high-level programming languages allows for a string, usually quoted in some way, to represent an instance of a string datatype; such a meta-string is called a &#039;&#039;literal&#039;&#039; or &#039;&#039;string literal&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== String length ===&lt;br /&gt;
Although formal strings can have an arbitrary (but finite) length, the length of strings in real languages is often constrained to an artificial maximum. In general, there are two types of string datatypes: &#039;&#039;fixed-length strings&#039;&#039;, which have a fixed maximum length and which use the same amount of memory whether this maximum is reached or not, and &#039;&#039;variable-length strings&#039;&#039;, whose length is not arbitrarily fixed and which use varying amounts of memory depending on their actual size. Most strings in modern [[programming languages]] are variable-length strings. Despite the name, even variable-length strings are limited in length, although, in general, the limit depends only on the amount of [[computer memory|memory]] available. The string length can be stored as a separate integer (which puts a theoretical limit on the length) or implicitly through a termination character, usually a character value with all bits zero. See also &amp;quot;Null-terminated&amp;quot; below.&lt;br /&gt;
&lt;br /&gt;
=== Character encoding ===&lt;br /&gt;
String datatypes have historically allocated one byte per character, and, although the exact character set varied by region, character encodings were similar enough that programmers could often get away with ignoring this, since characters a program treated specially (such as period and space and comma) were in the same place in all the encodings a program would encounter. These character sets were typically based on [[ASCII]] or [[EBCDIC]].&lt;br /&gt;
&lt;br /&gt;
[[Logograph]]ic languages such as [[Chinese language|Chinese]], [[Japanese language|Japanese]], and [[Korean language|Korean]] (known collectively as [[CJK]]) need far more than 256 characters (the limit of a one 8-bit byte per-character encoding) for reasonable representation. The normal solutions involved keeping single-byte representations for ASCII and using two-byte representations for CJK [[ideographs]]. Use of these with existing code led to problems with matching and cutting of strings, the severity of which depended on how the character encoding was designed. Some encodings such as the [[Extended Unix Code|EUC]] family guarantee that a byte value in the ASCII range will represent only that ASCII character, making the encoding safe for systems that use those characters as field separators. Other encodings such as [[ISO-2022]] and [[Shift-JIS]] do not make such guarantees, making matching on byte codes unsafe. These encodings also were not &amp;quot;self-synchronizing&amp;quot;, so that locating character boundaries required backing up to the start of a string, and pasting two strings together could result in corruption of the second string (these problems were much less with EUC as any ASCII character did synchronize the encoding).&lt;br /&gt;
&lt;br /&gt;
[[Unicode]] has simplified the picture somewhat. Most programming languages now have a datatype for Unicode strings. Unicode&#039;s preferred byte stream format [[UTF-8]] is designed not to have the problems described above for older multibyte encodings. All UTF-8, UTF-16 and [[UTF-32]] require the programmer to know that the fixed-size code units are different than the &amp;quot;characters&amp;quot;, the main difficulty currently is incorrectly designed API&#039;s that attempt to hide this difference.&lt;br /&gt;
&lt;br /&gt;
=== Implementations ===&lt;br /&gt;
Some languages like [[C++]] implement strings as [[generic programming|templates]] that can be used with any datatype, but this is the exception, not the rule.&lt;br /&gt;
&lt;br /&gt;
Some languages, such as C++ and [[Ruby (programming language)|Ruby]], normally allow the contents of a string to be changed after it has been created; these are termed &#039;&#039;mutable&#039;&#039; strings.  In other languages, such as [[Java (programming language)|Java]] and [[Python (programming language)|Python]], the value is fixed and a new string must be created if any alteration is to be made; these are termed &#039;&#039;immutable&#039;&#039; strings.&lt;br /&gt;
&lt;br /&gt;
Strings are typically implemented as [[Array data type|arrays]] of bytes, characters, or code units, in order to allow fast access to individual units or substrings—including characters when they have a fixed length.  A few languages such as [[Haskell (programming language)|Haskell]] implement them as [[linked list]]s instead.&lt;br /&gt;
&lt;br /&gt;
Some languages, such as [[Prolog]] and [[Erlang (programming language)|Erlang]], avoid implementing a dedicated string datatype at all, instead adopting the convention of representing strings as lists of character codes.&lt;br /&gt;
&lt;br /&gt;
=== Representations ===&lt;br /&gt;
Representations of strings depend heavily on the choice of character repertoire and the method of character encoding. Older string implementations were designed to work with repertoire and encoding defined by ASCII, or more recent extensions like the [[ISO 8859]] series. Modern implementations often use the extensive repertoire defined by Unicode along with a variety of complex encodings such as UTF-8 and UTF-16.&lt;br /&gt;
&lt;br /&gt;
The term &#039;&#039;bytestring&#039;&#039; usually indicates a general-purpose string of bytes, rather than strings of only (readable) characters, strings of bits, or such. Byte strings often imply that bytes can take any value and any data can be stored as-is, meaning that there should be no value interpreted as a termination value.&lt;br /&gt;
&lt;br /&gt;
Most string implementations are very similar to variable-length [[Array data type|array]]s with the entries storing the [[character code]]s of corresponding characters. The principal difference is that, with certain encodings, a single logical character may take up more than one entry in the array. This happens for example with UTF-8, where single codes ([[Universal Character Set|UCS]] code points) can take anywhere from one to four bytes, and single characters can take an arbitrary number of codes. In these cases, the logical length of the string (number of characters) differs from the logical length of the array (number of bytes in use). [[UTF-32]] is the only Unicode encoding that avoids this problem.&lt;br /&gt;
&lt;br /&gt;
==== Null-terminated ====&lt;br /&gt;
{{main|Null-terminated string}}&lt;br /&gt;
&lt;br /&gt;
The length of a string can be stored implicitly by using a special terminating character; often this is the [[null character]] (NUL), which has all bits zero, a convention used and perpetuated by the popular [[C (programming language)|C programming language]].&amp;lt;ref&amp;gt;&lt;br /&gt;
{{Citation&lt;br /&gt;
  | last = Bryant&lt;br /&gt;
  | first = Randal E.&lt;br /&gt;
  | author-link = Randal Bryant&lt;br /&gt;
  | last2 = David&lt;br /&gt;
  | first2 = O&#039;Hallaron&lt;br /&gt;
  | title = Computer Systems: A Programmer&#039;s Perspective&lt;br /&gt;
  | place = Upper Saddle River, NJ&lt;br /&gt;
  | publisher = Pearson Education&lt;br /&gt;
  | year = 2003&lt;br /&gt;
  | edition = 2003&lt;br /&gt;
  | url = http://csapp.cs.cmu.edu/&lt;br /&gt;
  | isbn = 0-13-034074-X&lt;br /&gt;
  | page = 40}}&lt;br /&gt;
&amp;lt;/ref&amp;gt; Hence, this representation is commonly referred to as C string.&lt;br /&gt;
&lt;br /&gt;
In terminated strings, the terminating code is not an allowable character in any string. Strings with &#039;&#039;length&#039;&#039; field do not have this limitation and can also store arbitrary [[binary data]]. In C two things are needed to handle binary data, a character pointer and the length of the data.&lt;br /&gt;
&lt;br /&gt;
An example of a &#039;&#039;null-terminated string&#039;&#039; stored in a 10-byte [[Buffer (computer science)|buffer]], along with its [[ASCII]] (or more modern [[UTF-8]]) representation as 8-bit [[hexadecimal number]]s is:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right:auto&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 | &amp;lt;code&amp;gt;F&amp;lt;/code&amp;gt;  || &amp;lt;code&amp;gt;R&amp;lt;/code&amp;gt;  || &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt;  || &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt;  || &amp;lt;code&amp;gt;K&amp;lt;/code&amp;gt;&lt;br /&gt;
 | &amp;lt;small&amp;gt;NUL&amp;lt;/small&amp;gt;&lt;br /&gt;
 | style=&amp;quot;background: #DDD&amp;quot; | &amp;lt;code style=&amp;quot;background: #DDD&amp;quot;&amp;gt;k&amp;lt;/code&amp;gt;&lt;br /&gt;
 | style=&amp;quot;background: #DDD&amp;quot; | &amp;lt;code style=&amp;quot;background: #DDD&amp;quot;&amp;gt;e&amp;lt;/code&amp;gt;&lt;br /&gt;
 | style=&amp;quot;background: #DDD&amp;quot; | &amp;lt;code style=&amp;quot;background: #DDD&amp;quot;&amp;gt;f&amp;lt;/code&amp;gt;&lt;br /&gt;
 | style=&amp;quot;background: #DDD&amp;quot; | &amp;lt;code style=&amp;quot;background: #DDD&amp;quot;&amp;gt;w&amp;lt;/code&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 46&amp;lt;sub&amp;gt;16&amp;lt;/sub&amp;gt; || 52&amp;lt;sub&amp;gt;16&amp;lt;/sub&amp;gt; || 41&amp;lt;sub&amp;gt;16&amp;lt;/sub&amp;gt; || 4E&amp;lt;sub&amp;gt;16&amp;lt;/sub&amp;gt; || 4B&amp;lt;sub&amp;gt;16&amp;lt;/sub&amp;gt;&lt;br /&gt;
 | 00&amp;lt;sub&amp;gt;16&amp;lt;/sub&amp;gt;&lt;br /&gt;
 | style=&amp;quot;background: #DDD&amp;quot; | 6B&amp;lt;sub&amp;gt;16&amp;lt;/sub&amp;gt;&lt;br /&gt;
 | style=&amp;quot;background: #DDD&amp;quot; | 65&amp;lt;sub&amp;gt;16&amp;lt;/sub&amp;gt;&lt;br /&gt;
 | style=&amp;quot;background: #DDD&amp;quot; | 66&amp;lt;sub&amp;gt;16&amp;lt;/sub&amp;gt;&lt;br /&gt;
 | style=&amp;quot;background: #DDD&amp;quot; | 77&amp;lt;sub&amp;gt;16&amp;lt;/sub&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
The length of the string in the above example, &amp;quot;&amp;lt;code&amp;gt;FRANK&amp;lt;/code&amp;gt;&amp;quot;, is 5 characters, but it occupies 6 bytes. Characters after the terminator do not form part of the representation; they may be either part of another string or just garbage. (Strings of this form are sometimes called &#039;&#039;ASCIZ strings&#039;&#039;, after the original [[assembly language]] directive used to declare them.)&lt;br /&gt;
&lt;br /&gt;
==== Length-prefixed ====&lt;br /&gt;
The length of a string can also be stored explicitly, for example by prefixing the string with the length as a byte value (a convention used in many [[Pascal (programming language)|Pascal]] dialects): as a consequence, some people call it a P-string. Storing the string length as byte limits the maximum string length to 255. To avoid such limitations, improved implementations of P-strings use [[16-bit|16-]], [[32-bit|32-]], or [[64-bit]] [[Word (data type)|words]] to store the string length. When the &#039;&#039;length&#039;&#039; field covers the [[address space]], strings are limited only by the [[Dynamic memory allocation|available memory]].&lt;br /&gt;
&lt;br /&gt;
Here is the equivalent &#039;&#039;&#039;Pascal string&#039;&#039;&#039; stored in a 10-byte buffer, along with its ASCII / UTF-8 representation:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right:auto&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 | &amp;lt;small&amp;gt;length&amp;lt;/small&amp;gt;&lt;br /&gt;
 | &amp;lt;code&amp;gt;F&amp;lt;/code&amp;gt;  || &amp;lt;code&amp;gt;R&amp;lt;/code&amp;gt;  || &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt;  || &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt;  || &amp;lt;code&amp;gt;K&amp;lt;/code&amp;gt;&lt;br /&gt;
 | style=&amp;quot;background: #DDD&amp;quot; | &amp;lt;code style=&amp;quot;background: #DDD&amp;quot;&amp;gt;k&amp;lt;/code&amp;gt;&lt;br /&gt;
 | style=&amp;quot;background: #DDD&amp;quot; | &amp;lt;code style=&amp;quot;background: #DDD&amp;quot;&amp;gt;e&amp;lt;/code&amp;gt;&lt;br /&gt;
 | style=&amp;quot;background: #DDD&amp;quot; | &amp;lt;code style=&amp;quot;background: #DDD&amp;quot;&amp;gt;f&amp;lt;/code&amp;gt;&lt;br /&gt;
 | style=&amp;quot;background: #DDD&amp;quot; | &amp;lt;code style=&amp;quot;background: #DDD&amp;quot;&amp;gt;w&amp;lt;/code&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 5&amp;lt;sub&amp;gt;16&amp;lt;/sub&amp;gt;&lt;br /&gt;
 | 46&amp;lt;sub&amp;gt;16&amp;lt;/sub&amp;gt; || 52&amp;lt;sub&amp;gt;16&amp;lt;/sub&amp;gt; || 41&amp;lt;sub&amp;gt;16&amp;lt;/sub&amp;gt; || 4E&amp;lt;sub&amp;gt;16&amp;lt;/sub&amp;gt; || 4B&amp;lt;sub&amp;gt;16&amp;lt;/sub&amp;gt;&lt;br /&gt;
 | style=&amp;quot;background: #DDD&amp;quot; | 6B&amp;lt;sub&amp;gt;16&amp;lt;/sub&amp;gt;&lt;br /&gt;
 | style=&amp;quot;background: #DDD&amp;quot; | 65&amp;lt;sub&amp;gt;16&amp;lt;/sub&amp;gt;&lt;br /&gt;
 | style=&amp;quot;background: #DDD&amp;quot; | 66&amp;lt;sub&amp;gt;16&amp;lt;/sub&amp;gt;&lt;br /&gt;
 | style=&amp;quot;background: #DDD&amp;quot; | 77&amp;lt;sub&amp;gt;16&amp;lt;/sub&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==== Strings as records ====&lt;br /&gt;
Many languages, including object-oriented ones, implement strings as [[record (computer science)|record]]s in a structure like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
class string {&lt;br /&gt;
  int length;&lt;br /&gt;
  char *text;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Although this implementation is hidden, and accessed through member functions. The &amp;quot;text&amp;quot; will be a dynamically allocated memory area, that might be expanded if needed. See also [[string (C++)]].&lt;br /&gt;
&lt;br /&gt;
==== Linked-list ====&lt;br /&gt;
Both character termination and length codes limit strings: For example, C character arrays that contain null (NUL) characters cannot be handled directly by C string library functions: Strings using a length code are limited to the maximum value of the length code.&lt;br /&gt;
&lt;br /&gt;
Both of these limitations can be overcome by clever programming, of course, but such workarounds are by definition not standard.&lt;br /&gt;
&lt;br /&gt;
Rough equivalents of the C termination method have historically appeared in both hardware and software. For example, &amp;quot;data processing&amp;quot; machines like the [[IBM 1401]] used a special word mark bit to delimit strings at the left, where the operation would start at the right.  This meant that, while the IBM 1401 had a seven-bit word in &amp;quot;reality&amp;quot;, almost no-one ever thought to use this as a feature, and override the assignment of the seventh bit to (for example) handle ASCII codes.&lt;br /&gt;
&lt;br /&gt;
It is possible to create data structures and functions that manipulate them that do not have the problems associated with character termination and can in principle overcome length code bounds. It is also possible to optimize the string represented using techniques from [[Run-length encoding|run length encoding]] (replacing repeated characters by the character value and a length) and [[Hamming coding|Hamming encoding]].&lt;br /&gt;
&lt;br /&gt;
While these representations are common, others are possible. Using [[rope (computer science)|rope]]s makes certain string operations, such as insertions, deletions, and concatenations more efficient.&lt;br /&gt;
&lt;br /&gt;
=== Security concerns ===&lt;br /&gt;
The differing memory layout and storage requirements of strings can affect the security of the program accessing the string data. String representations requiring a terminating character are commonly susceptible to [[buffer overflow]] problems if the terminating character is not present, caused by a coding error or an [[hacker (computer security)|attacker]] deliberately altering the data. String representations adopting a separate length field are also susceptible if the length can be manipulated. In such cases, program code accessing the string data requires [[bounds checking]] to ensure that it does not inadvertently access or change data outside of the string memory limits.&lt;br /&gt;
&lt;br /&gt;
String data is frequently obtained from user-input to a program. As such, it is the responsibility of the program to validate the string to ensure that it represents the expected format. Performing limited or no validation of user-input can cause a program to be vulnerable to [[code injection]] attacks.  &lt;br /&gt;
&lt;br /&gt;
== Text file strings ==&lt;br /&gt;
In computer readable text files, for example programming language source files or configuration files, strings can be represented. The NUL byte is normally not used as terminator since that does not correspond to the ASCII text standard, and the length is usually not stored, since the file should be human editable without bugs.&lt;br /&gt;
&lt;br /&gt;
Two common representations are:&lt;br /&gt;
&lt;br /&gt;
* Surrounded by [[quotation mark]]s (ASCII 22&amp;lt;sub&amp;gt;16&amp;lt;/sub&amp;gt;), used by most programming languages. To be able to include quotation marks, newline characters etc., [[Escape character|escape sequence]]s are often available, usually using the [[backslash]] character (ASCII 5C&amp;lt;sub&amp;gt;16&amp;lt;/sub&amp;gt;).&lt;br /&gt;
* Terminated by a [[newline]] sequence, for example in Windows [[INI file]]s.&lt;br /&gt;
&lt;br /&gt;
{{See also|String literal}}&lt;br /&gt;
&lt;br /&gt;
== Non-text strings ==&lt;br /&gt;
While character strings are very common uses of strings, a string in computer science may refer generically to any sequence of homogeneously typed data. A string of [[bit]]s or bytes, for example, may be used to represent non-textual [[binary data]] retrieved from a communications medium. This data may or may not be represented by a string-specific datatype, depending on the needs of the application, the desire of the programmer, and the capabilities of the programming language being used. If the programming language&#039;s string implementation is not [[8-bit clean]], data corruption may ensue.&lt;br /&gt;
&lt;br /&gt;
== String processing algorithms ==&lt;br /&gt;
There are many [[algorithm]]s for processing strings, each with various trade-offs. Some categories of algorithms include:&lt;br /&gt;
&lt;br /&gt;
* [[String searching algorithm]]s for finding a given substring or pattern&lt;br /&gt;
* [[String manipulation algorithm]]s&lt;br /&gt;
* [[Sorting algorithm]]s&lt;br /&gt;
* [[Regular expression]] algorithms&lt;br /&gt;
* [[Parser|Parsing]] a string&lt;br /&gt;
* [[Sequence mining]]&lt;br /&gt;
&lt;br /&gt;
Advanced string algorithms often employ complex mechanisms and data structures, among them [[suffix tree]]s and [[finite state machine]]s.&lt;br /&gt;
&lt;br /&gt;
== Character string-oriented languages and utilities ==&lt;br /&gt;
Character strings are such a useful datatype that several languages have been designed in order to make string processing applications easy to write. Examples include the following languages:&lt;br /&gt;
* [[AWK (programming language)|awk]]&lt;br /&gt;
* [[Icon (programming language)|Icon]]&lt;br /&gt;
* [[MUMPS]]&lt;br /&gt;
* [[Perl]]&lt;br /&gt;
* [[Rexx]]&lt;br /&gt;
* [[Ruby (programming language)|Ruby]]&lt;br /&gt;
* [[sed]]&lt;br /&gt;
* [[SNOBOL]]&lt;br /&gt;
* [[Tcl]]&lt;br /&gt;
* [[TTM (programming language)|TTM]]&lt;br /&gt;
&lt;br /&gt;
Many [[Unix]] utilities perform simple string manipulations and can be used to easily program some powerful string processing algorithms. Files and finite streams may be viewed as strings.&lt;br /&gt;
&lt;br /&gt;
Some [[application programming interface|API]]s like [[Multimedia Control Interface]], [[embedded SQL]] or [[printf]] use strings to hold commands that will be interpreted.&lt;br /&gt;
&lt;br /&gt;
Recent [[scripting programming language]]s, including Perl, [[Python (programming language)|Python]], Ruby, and Tcl employ [[regular expression]]s to facilitate text operations.&lt;br /&gt;
&lt;br /&gt;
Some languages such as Perl and Ruby support [[string interpolation]], which permits arbitrary expressions to be evaluated and included in string literals.&lt;br /&gt;
&lt;br /&gt;
== Character string functions ==&lt;br /&gt;
{{See also|Comparison of programming languages (string functions)}}&lt;br /&gt;
&lt;br /&gt;
[[String function]]s are used to manipulate a string or change or edit the contents of a string. They also are used to query information about a string. They are usually used within the context of a [[programming language|computer programming language]].&lt;br /&gt;
&lt;br /&gt;
The most basic example of a string function is the &amp;lt;code&amp;gt;length(string)&amp;lt;/code&amp;gt; function, which returns the length of a string (not counting any terminator characters or any of the string&#039;s internal structural information) and does not modify the string. For example, &amp;lt;code&amp;gt;length(&amp;quot;hello world&amp;quot;)&amp;lt;/code&amp;gt; returns 11.&lt;br /&gt;
&lt;br /&gt;
There are many string functions that exist in other languages with similar or exactly the same syntax or parameters. For example, in many languages, the length function is usually represented as &amp;lt;code&amp;gt;len(string)&amp;lt;/code&amp;gt;. Even though string functions are very useful to a computer programmer, a computer programmer using these functions should be mindful that a string function in one language could in another language behave differently or have a similar or completely different function name, parameters, syntax, and results.&lt;br /&gt;
&lt;br /&gt;
==String buffers==&amp;lt;!-- Anchor for redirect [String buffers]; please don&#039;t change. --&amp;gt;&lt;br /&gt;
In some [[programming language]]s, a &#039;&#039;String Buffer&#039;&#039; is an alternative to a String.  It has the ability to be altered through adding or appending, whereas a String is normally fixed or [[Immutable object|immutable]].&lt;br /&gt;
&lt;br /&gt;
=== In Java ===&lt;br /&gt;
==== Theory ====&lt;br /&gt;
[[Java (Sun)|Java]]&#039;s standard way to handle text is to use its &amp;lt;code&amp;gt;{{Javadoc:SE|java/lang|String}}&amp;lt;/code&amp;gt; [[Class (computer science)|class]]. Any given &amp;lt;code&amp;gt;String&amp;lt;/code&amp;gt; in Java is an [[immutable object]], which means its [[State (computer science)|state]] cannot be changed. A &amp;lt;code&amp;gt;String&amp;lt;/code&amp;gt; has an [[Array data type|array]] of [[Character (computing)|characters]]. Whenever a &amp;lt;code&amp;gt;String&amp;lt;/code&amp;gt; must be manipulated, any changes require the creation of a new &amp;lt;code&amp;gt;String&amp;lt;/code&amp;gt; (which, in turn, involves the creation of a new array of characters, and copying of the original array). This happens even if the original &amp;lt;code&amp;gt;String&amp;lt;/code&amp;gt;&#039;s value or intermediate &amp;lt;code&amp;gt;String&amp;lt;/code&amp;gt;s used for the manipulation are not kept. &lt;br /&gt;
&lt;br /&gt;
Java provides an alternate class for string manipulation, called a &amp;lt;code&amp;gt;&#039;&#039;&#039;[http://java.sun.com/j2se/1.5.0/docs/api/java/lang/StringBuffer.html StringBuffer]&#039;&#039;&#039;&amp;lt;/code&amp;gt;. A &amp;lt;code&amp;gt;StringBuffer&amp;lt;/code&amp;gt;, like a &amp;lt;code&amp;gt;String&amp;lt;/code&amp;gt;, has an array to hold characters. It, however, is mutable (its state can be altered). Its array of characters is not necessarily completely filled (as oppose to a String, whose array is always the exact required length for its contents). Thus, it has the capability to add, remove, or change its state without creating a new object (and without the creation of a new array, and array copying). The exception to this is when its array is no longer of suitable length to hold its content. In this case, it is required to create a new array, and copy contents.&lt;br /&gt;
&lt;br /&gt;
For these reasons, Java would handle an expression like&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
String newString = aString + anInt + aChar + aDouble;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
String newString = (new StringBuffer(aString)).append(anInt).append(aChar).append(aDouble).toString();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Implications ====&lt;br /&gt;
Generally, a &amp;lt;code&amp;gt;StringBuffer&amp;lt;/code&amp;gt; is more [[analysis of algorithms|efficient]] than a String in string handling. However, this is not necessarily the case, since a StringBuffer will be required to recreate its character array when it runs out of space. Theoretically, this is possible to happen the same number of times as a new String would be required, although this is unlikely (and the programmer can provide length hints to prevent this). Either way, the effect is not noticeable in modern desktop computers.&lt;br /&gt;
&lt;br /&gt;
As well, the shortcomings of arrays are inherent in a &amp;lt;code&amp;gt;StringBuffer&amp;lt;/code&amp;gt;. In order to insert or remove characters at arbitrary positions, whole sections of arrays must be moved. &lt;br /&gt;
&lt;br /&gt;
The method by which a &amp;lt;code&amp;gt;StringBuffer&amp;lt;/code&amp;gt; is attractive in an environment with low processing power takes this ability by using too much memory, which is likely also at a premium in this environment. This point, however, is trivial, considering the space required for creating many instances of Strings in order to process them. As well, the StringBuffer can be optimized to &amp;quot;waste&amp;quot; as little memory as possible.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;{{Javadoc:SE|java/lang|StringBuilder}}&#039;&#039;&#039; class, introduced in [[Java Platform, Standard Edition|J2SE]] 5.0, differs from &amp;lt;code&amp;gt;StringBuffer&amp;lt;/code&amp;gt; in that it is [[Synchronization (computer science)|unsynchronized]].  When only a single [[Thread (computer science)|thread]] at a time will access the object, using a &amp;lt;code&amp;gt;StringBuilder&amp;lt;/code&amp;gt; processes more efficiently than using a &amp;lt;code&amp;gt;StringBuffer&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;StringBuffer&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;StringBuilder&amp;lt;/code&amp;gt; are included in the {{Javadoc:SE|package=java.lang|java/lang}} package.&lt;br /&gt;
&lt;br /&gt;
=== In .NET ===&lt;br /&gt;
Microsoft&#039;s [[.NET Framework]] has a &amp;lt;code&amp;gt;StringBuilder&amp;lt;/code&amp;gt; class in its [[Base Class Library]].&lt;br /&gt;
&lt;br /&gt;
=== In other languages ===&lt;br /&gt;
* In [[C++]] and [[Ruby (programming language)|Ruby]], the standard string class is already mutable, with the ability to change the contents and append strings, etc., so a separate mutable string class is unnecessary.&lt;br /&gt;
* In [[Objective-C]] ([[Cocoa (API)|Cocoa]]/[[OpenStep]] frameworks), the &amp;lt;code&amp;gt;NSMutableString&amp;lt;/code&amp;gt; class is the mutable version of the &amp;lt;code&amp;gt;NSString&amp;lt;/code&amp;gt; class.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Stringology]]&lt;br /&gt;
* [[Connection string]]&lt;br /&gt;
* [[Rope (computer science)|Rope]]&lt;br /&gt;
* [[Bitstring]]&lt;br /&gt;
* [[Binary-safe]]&lt;br /&gt;
* [[Improper input validation]]&lt;br /&gt;
* [[Incompressible string]]&lt;br /&gt;
* [[Empty string]]&lt;br /&gt;
* [[String metric]]&lt;br /&gt;
* [[string (C++)]]&lt;br /&gt;
* [[string.h]]&lt;br /&gt;
* [[Analysis of algorithms]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
{{reflist}}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* The JavaDocs of &amp;lt;code&amp;gt;[http://java.sun.com/j2se/1.5.0/docs/api/java/lang/StringBuffer.html StringBuffer]&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;[http://java.sun.com/j2se/1.5.0/docs/api/java/lang/StringBuilder.html StringBuilder]&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;[http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html String]&amp;lt;/code&amp;gt;.&lt;br /&gt;
* [http://www-128.ibm.com/developerworks/java/library/j-jtp04223.html?ca=dgr-lnxw01JavaUrbanLegends Urban Performance Legends] - An article which involves a discussion of immutable objects with respect to [[object-oriented design]]&lt;br /&gt;
&lt;br /&gt;
{{Data types}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Character encoding]]&lt;br /&gt;
[[Category:Data types]]&lt;br /&gt;
[[Category:Formal languages]]&lt;br /&gt;
[[Category:Combinatorics on words]]&lt;br /&gt;
[[Category:Primitive types]]&lt;br /&gt;
[[Category:Syntactic entities]]&lt;br /&gt;
[[Category:String (computer science)| ]]&lt;/div&gt;</summary>
		<author><name>165.91.12.24</name></author>
	</entry>
	<entry>
		<id>https://en.formulasearchengine.com/w/index.php?title=Capillary_pressure&amp;diff=12689</id>
		<title>Capillary pressure</title>
		<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/w/index.php?title=Capillary_pressure&amp;diff=12689"/>
		<updated>2013-10-03T18:18:34Z</updated>

		<summary type="html">&lt;p&gt;165.91.241.3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In [[constraint satisfaction]], &#039;&#039;&#039;local consistency&#039;&#039;&#039; conditions are properties of [[constraint satisfaction problem]]s related to the [[consistency]] of subsets of variables or constraints. Several such conditions exist, the most known being &#039;&#039;&#039;node consistency&#039;&#039;&#039;, &#039;&#039;&#039;arc consistency&#039;&#039;&#039;, and &#039;&#039;&#039;path consistency&#039;&#039;&#039;. Local consistency can be enforced via transformations of the problem called &#039;&#039;&#039;constraint propagation&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Local consistency conditions can be grouped into various classes. The original local consistency conditions require that every consistent assignment can be consistently extended to another variable. &#039;&#039;&#039;Directional consistency&#039;&#039;&#039; only requires this condition to be satisfied when the other variable is higher than the ones in the assignment, according to a given order. &#039;&#039;&#039;Relational consistency&#039;&#039;&#039; includes extensions to more than one variable, but this extension is only required to satisfy a given constraint or set of constraints.&lt;br /&gt;
&lt;br /&gt;
Every local consistency condition can be enforced by a transformation that changes the problem without changing its solutions. Such a transformation is called constraint propagation. Constraint propagation works by reducing domains of variables, strengthening constraints, or creating new ones. This leads to a reduction of the search space, making the problem easier to solve by some algorithms. Constraint propagation can also be used as an unsatisfiability checker, incomplete in general but complete in some particular cases.&lt;br /&gt;
&lt;br /&gt;
==Assumptions==&lt;br /&gt;
&lt;br /&gt;
In this article, a [[constraint satisfaction problem]] is defined as a set of variables, a set of domains, and a set of constraints. Variables and domains are associated: the domain of a variable contains all values the variable can take.  &lt;br /&gt;
A constraint is composed of a sequence of variables, called its scope, and a set of their evaluations, which are the evaluations &#039;&#039;satisfying&#039;&#039; the constraint. &lt;br /&gt;
&lt;br /&gt;
The constraint satisfaction problems referred to in this article are assumed to be in a special form. A problem is in &#039;&#039;normalized form&#039;&#039;, respectively &#039;&#039;regular form&#039;&#039;, if every sequence of variables is the scope of at most one constraint or exactly one constraint, respectively. The assumption of regularity done only for [[binary constraint]]s leads to the &#039;&#039;standardized form&#039;&#039;. These conditions can always be enforced by combining all constraints over a sequence of variables into a single one and/or adding a constraint that is satisfied by all values of a sequence of variables.&lt;br /&gt;
&lt;br /&gt;
In the figures used in this article, the lack of links between two variables indicate that either no constraint or a constraint satisfied by all values exists between these two variables.&lt;br /&gt;
&lt;br /&gt;
==Local consistency==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;standard&amp;quot; local consistency conditions all require that all consistent partial evaluations can be extended to another variable in such a way the resulting assignment is consistent. A partial evaluation is consistent if it satisfies all constraints whose scope is a subset of the assigned variables.&lt;br /&gt;
&lt;br /&gt;
===Node consistency===&lt;br /&gt;
&lt;br /&gt;
Node consistency requires that every unary constraint on a variable is satisfied by all values in the domain of the variable, and vice versa. This condition can be trivially enforced by reducing the domain of each variable to the values that satisfy all unary constraints on that variable. As a result, unary constraints can be neglected and assumed incorporated into the domains.&lt;br /&gt;
&lt;br /&gt;
For example, given a variable &amp;lt;math&amp;gt;V&amp;lt;/math&amp;gt; with a domain of &amp;lt;math&amp;gt;\left \{ 1, 2, 3, 4 \right \}&amp;lt;/math&amp;gt; and a constraint &amp;lt;math&amp;gt;V \le 3&amp;lt;/math&amp;gt;, node consistency would restrict the domain to &amp;lt;math&amp;gt;\left \{1, 2, 3 \right \}&amp;lt;/math&amp;gt; and the constraint could then be discarded. This pre-processing step simplifies later stages.&lt;br /&gt;
&lt;br /&gt;
===Arc consistency===&lt;br /&gt;
&lt;br /&gt;
[[Image:Arc-consistency-1.svg|thumb|250px|x2 is arc-consistent with x3 but not with x1, as the value x2=1 does not correspond to any value for x1.]]&lt;br /&gt;
A variable of a constraint satisfaction problem is arc-consistent with another one if each of its admissible values is consistent with some admissible value of the second variable. Formally, a variable &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; is arc-consistent with another variable &amp;lt;math&amp;gt;x_j&amp;lt;/math&amp;gt; if, for every value &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; in the domain of  &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; there exists a value &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; in the domain of &amp;lt;math&amp;gt;x_j&amp;lt;/math&amp;gt; such that &amp;lt;math&amp;gt;(a,b)&amp;lt;/math&amp;gt; satisfies the binary constraint between &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;x_j&amp;lt;/math&amp;gt;. A problem is arc consistent if every variable is arc consistent with every other one.&lt;br /&gt;
&lt;br /&gt;
For example, consider the constraint &amp;lt;math&amp;gt;x &amp;lt; y&amp;lt;/math&amp;gt; where the variables range over the domain 1 to 3. Because &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; can never be 3, there is no arc from 3 to a value in &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; so it is safe to remove. Likewise, &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; can never be 1, so there is no arc, therefore it can be removed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- move to a separate section on normalized/non-normalized problems --&amp;gt;&lt;br /&gt;
Arc consistency can also be defined relative to a specific binary constraint: a binary constraint is arc-consistent if every value of one variable has a value of the second variable such that they satisfy the constraint. This definition of arc consistency is similar to the above, but is given specific to a constraint. This difference is especially relevant for non-normalized problems, where the above definition would consider all constraints between two variables while this one considers only a specific one.&lt;br /&gt;
&lt;br /&gt;
[[Image:Arc-consistency-2.svg|thumb|250px|Arc consistency enforced by removing 1 as a value for x2. As a result, x3 is no longer arc-consistent with x2 because x3=2 does not correspond to a value for x2.]]&lt;br /&gt;
If a variable is not arc consistent with another one, it can be made so by removing some values from its domain. This is the form of constraint propagation that enforces arc consistency: it removes, from the domain of the variable, every value that does not correspond to a value of the other variable. This transformation maintains the problem solutions, as the removed values are in no solution anyway.&lt;br /&gt;
&lt;br /&gt;
Constraint propagation can make the whole problem arc consistent by repeating this removal for all pairs of variables. This process might have to consider a given pair of variables more than once. Indeed, removing values from the domain of a variable may cause other variables to become no longer arc consistent with it. For example, if &amp;lt;math&amp;gt;x_3&amp;lt;/math&amp;gt; is arc consistent with &amp;lt;math&amp;gt;x_2&amp;lt;/math&amp;gt; but the algorithm reduces the domain of &amp;lt;math&amp;gt;x_2&amp;lt;/math&amp;gt;, arc consistency of &amp;lt;math&amp;gt;x_3&amp;lt;/math&amp;gt; with &amp;lt;math&amp;gt;x_2&amp;lt;/math&amp;gt; does not hold any longer, and has to be enforced again. &lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;[[Algorithm#By complexity|simplistic algorithm]]&#039;&#039;&#039; would cycle over the pairs of variables, enforcing arc-consistency, repeating the cycle until no domain change for a whole cycle. The [[AC-3 algorithm]] improves over this algorithm by ignoring constraints that have not been modified since they were last analyzed. In particular, it works on a set of constraints that initially contains all of them; at each step, it takes a constraint and enforces arc-consistency; if this operation may have produced a violation of arc-consistency over another constraint, it places it back in the set of constraints to analyze. This way, once arc-consistency is enforced on a constraint, this constraint is not considered again unless the domain of one of its variables is changed.&lt;br /&gt;
&lt;br /&gt;
===Path consistency===&lt;br /&gt;
&lt;br /&gt;
[[Image:Path-consistency-1.svg|frame|x1 and x2 are not path-consistent with x3. They can be made path consistent by removing the blue values from R12.]]&lt;br /&gt;
Path consistency is a property similar to arc consistency, but considers pairs of variables instead of only one. A pair of variables is path-consistent with a third variable if each consistent evaluation of the pair can be extended to the other variable in such a way that all &#039;&#039;binary&#039;&#039; constraints are satisfied. Formally, &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;x_j&amp;lt;/math&amp;gt; are path consistent with &amp;lt;math&amp;gt;x_k&amp;lt;/math&amp;gt; if, for every pair of values &amp;lt;math&amp;gt;(a,b)&amp;lt;/math&amp;gt; that satisfies the binary constraint between &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;x_j&amp;lt;/math&amp;gt;, there exists a value &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; in the domain of &amp;lt;math&amp;gt;x_k&amp;lt;/math&amp;gt; such that &amp;lt;math&amp;gt;(a,c)&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;(b,c)&amp;lt;/math&amp;gt; satisfy the constraint between &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;x_k&amp;lt;/math&amp;gt; and between &amp;lt;math&amp;gt;x_j&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;x_k&amp;lt;/math&amp;gt;, respectively.&lt;br /&gt;
&lt;br /&gt;
The form of constraint propagation that enforces path consistency works by removing some satisfying assignment from a constraint. Indeed, path consistency can be enforced by removing from a binary constraint all evaluations that cannot be extended to another variable. As for arc consistency, this removal might have to  consider a binary constraint more than once. As for arc consistency, the resulting problem has the same solutions of the original one, as the removed values are in no solution.&lt;br /&gt;
&lt;br /&gt;
[[Image:Path-consistency-2.svg|left|frame|Two variables not in a constraint can be considered related by a virtual constraint allowing any possible pair of values, represented by the blue edges in this figure.]]&lt;br /&gt;
[[Image:Path-consistency-3.svg|left|frame|Enforcing path consistency of x1 and x2 with x3 removes the edge at the top. The values of x1 and x2 are not longer free, but related by a new actual constraint.]]&lt;br /&gt;
The form of constraint propagation that enforces path consistency might introduce new constraints. When two variables are not related by a binary constraint, they are virtually related by the constraint allowing any pair of values. However, some pair of values might be removed by constraint propagation. The resulting constraint is no longer satisfied by all pairs of values. Therefore, it is no longer a virtual, trivial constraint.&lt;br /&gt;
&lt;br /&gt;
The name &amp;quot;path consistency&amp;quot; derives from the original definition, which involved a pair of variables and a path between them, rather than a the pair and a single variable. While the two definitions are different for a single pair of variables, they are equivalent when referring to the whole problem.&lt;br /&gt;
&lt;br /&gt;
===Generalizations===&amp;lt;!-- This section is linked from [[K-consistency]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Arc and path consistency can be generalized to non-binary constraints using [[tuple]]s of variables instead of a single one or a pair. A tuple of &amp;lt;math&amp;gt;i-1&amp;lt;/math&amp;gt; variables is &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;-consistent with another variable if every consistent evaluation of the &amp;lt;math&amp;gt;i-1&amp;lt;/math&amp;gt; variables can be extended with a value of the other variable while preserving consistency. This definition extends to whole problems in the obvious way. Strong &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;-consistency is  &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt;-consistency for all &amp;lt;math&amp;gt;j \leq i&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The particular case of 2-consistency coincides with arc consistency (all problems are assumed node-consistent in this article). On the other hand, 3-consistency coincides with path consistency only if all constraints are binary, because path consistency does not involve ternary constraints while 3-consistency does.&lt;br /&gt;
&lt;br /&gt;
Another way of generalizing arc consistency is &#039;&#039;hyper-arc consistency&#039;&#039; or &#039;&#039;generalized arc consistency&#039;&#039;, which requires extendibility of a single variable in order to satisfy a constraint. Namely, a variable is hyper-arc consistent with a constraint if every value of the variable can be extended to the other variables of the constraint in such a way the constraint is satisfied.&lt;br /&gt;
&lt;br /&gt;
===Consistency and satisfiability===&lt;br /&gt;
&lt;br /&gt;
[[Image:Backtracking-arc-consistency.svg|thumb|200px|This instance is arc consistent and contains no empty domain, but has no solution. The blue lines indicate assignments forced by the choice x1=1.]]&lt;br /&gt;
Constraint propagation (enforcing a form of local consistency) might produce an empty domain or an unsatisfiable constraint. In this case, the problem has no solution. The converse is not true in general: an inconsistent instance may be arc consistent or path consistent while having no empty domain or unsatisfiable constraint.&lt;br /&gt;
&lt;br /&gt;
Indeed, local consistency is only relative to the consistency of groups of variables. For example, arc consistency guarantees that every consistent evaluation of a variable can be consistently extended to another variable. However, when a single value of a variable is extended to two other variables, there is no guarantee that these two values are consistent with each other. For example, &amp;lt;math&amp;gt;x_1=1&amp;lt;/math&amp;gt; may be consistent with &amp;lt;math&amp;gt;x_2=1&amp;lt;/math&amp;gt; and with &amp;lt;math&amp;gt;x_3=1&amp;lt;/math&amp;gt;, but these two evaluations may not be consistent with each other.&lt;br /&gt;
&lt;br /&gt;
However, constraint propagation can be used to prove satisfiability in some cases. A set of binary constraints that is arc consistent and has no empty domain can be inconsistent only if the network of constraints contains cycles. Indeed, if the constraints are binary and form an acyclic graph, values can always be propagated across constraints: for every value of a variable, all variables in a constraint with it have a value satisfying that constraint. As a result, a solution can be found by iteratively choosing an unassigned variable and recursively propagating across constraints. This algorithm never tries to assign a value to a variable that is already assigned, as that would imply the existence of cycles in the network of constraints.&lt;br /&gt;
&lt;br /&gt;
A similar condition holds for path consistency. The special cases in which satisfiability can be established by enforcing arc consistency and path consistency are the following ones.&lt;br /&gt;
&lt;br /&gt;
# enforcing arc consistency establishes satisfiability of problems made of binary constraints with no [[cycle (mathematics)|cycles]] (a [[tree]] of binary constraints);&lt;br /&gt;
# enforcing path consistency establishes satisfiability for binary constraints (possibly with cycles) with binary domains;&lt;br /&gt;
# enforcing strong &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; consistency establishes satisfiability of problems containing &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; variables.&lt;br /&gt;
&lt;br /&gt;
===Special cases===&lt;br /&gt;
&lt;br /&gt;
Some definitions or results about relative consistency hold only in special cases.&lt;br /&gt;
&lt;br /&gt;
When the domains are composed of [[integer]]s, bound consistency can be defined. This form of consistency is based on the consistency of the extreme values of the domains, that is, the minimum and maximum values a variable can take.&lt;br /&gt;
&lt;br /&gt;
When constraints are [[Algebraic functions|algebraic]] or [[Boolean logic|Boolean]], arc consistency is equivalent to adding new constraint or syntactically modifying an old one, and this can be done by suitably composing constraints.&lt;br /&gt;
&lt;br /&gt;
===Specialized constraints===&lt;br /&gt;
&lt;br /&gt;
Some kinds of constraints are commonly used. For example, the constraint that some variables are all different are often used. Efficient specialized algorithms for enforcing arc consistency on such constraints exist. &lt;br /&gt;
&lt;br /&gt;
The constraint enforcing a number of variables to be different is usually written &amp;lt;math&amp;gt;\mathop{\rm alldifferent}(x_1,\ldots,x_n)&amp;lt;/math&amp;gt; or &amp;lt;code&amp;gt;alldifferent([X1,...,Xn])&amp;lt;/code&amp;gt;. This constraint is equivalent to the non-equality of all pairs of different variables, that is, &amp;lt;math&amp;gt;x_i \not= x_j&amp;lt;/math&amp;gt; for every &amp;lt;math&amp;gt;i \not= j&amp;lt;/math&amp;gt;. When the domain of a variable is reduced to a single value, this value can be removed from all other domains by constraint propagation when enforcing arc consistency. The use of the specialized constraint allows for exploiting properties that do not hold for individual binary disequalities.&lt;br /&gt;
&lt;br /&gt;
A first property is that the total number of elements in the domains of all variables must be at least the number of variables. More precisely, after arc consistency is enforced, the number of unassigned variables must not exceed the number of values in the union of their domains. Otherwise, the constraint cannot be satisfied. This condition can be checked easily on a constraint in the &amp;lt;code&amp;gt;alldifferent&amp;lt;/code&amp;gt; form, but does not correspond to arc consistency of the network of disequalities. A second property of the single &amp;lt;code&amp;gt;alldifferent&amp;lt;/code&amp;gt; constraint is that hyper-arc consistency can be efficiently checked using a [[bipartite matching]] algorithm. In particular, a graph is built with variables and values as the two sets of nodes, and a specialized bipartite graph matching algorithm is run on it to check the existence of such a matching.&lt;br /&gt;
&lt;br /&gt;
A different kind of constraint that is commonly used is the &amp;lt;code&amp;gt;cumulative&amp;lt;/code&amp;gt; one. It was introduced for problems of scheduling and placement. As an example, &amp;lt;code&amp;gt;cumulative([S1,...,Sm], [D1,...,Dm], [R1,...,Rm], L)&amp;lt;/code&amp;gt; can be used to formalize the condition in which there are &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; activities, each one with starting time &amp;lt;code&amp;gt;si&amp;lt;/code&amp;gt;, duration &amp;lt;code&amp;gt;di&amp;lt;/code&amp;gt; and using an amount &amp;lt;code&amp;gt;ri&amp;lt;/code&amp;gt; of a resource. The constraint states that the total available amount of resources is &amp;lt;code&amp;gt;L&amp;lt;/code&amp;gt;. Specialized constraint propagation techniques for cumulative constraints exists; different techniques are used depending on which variable domains are already reduced to a single value.&lt;br /&gt;
&lt;br /&gt;
A third specialized constraint that is used in [[constraint logic programming]] is the &amp;lt;code&amp;gt;element&amp;lt;/code&amp;gt; one. In constraint logic programming, lists are allowed as values of variables. A constraint &amp;lt;code&amp;gt;element(I, L, X)&amp;lt;/code&amp;gt; is satisfied if &amp;lt;code&amp;gt;L&amp;lt;/code&amp;gt; is a list and &amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt; is the &amp;lt;code&amp;gt;I&amp;lt;/code&amp;gt;-th element of this list. Specialized constraint propagation rules for these constraints exist. As an example, if &amp;lt;code&amp;gt;L&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;I&amp;lt;/code&amp;gt; are reduced to a single-value domain, a unique value for &amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt; can be determined. More generally, impossible values of &amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt; can be inferred from the domain of &amp;lt;math&amp;gt;I&amp;lt;/math&amp;gt; and vice versa.&lt;br /&gt;
&lt;br /&gt;
==Directional consistency==&lt;br /&gt;
&lt;br /&gt;
Directional consistency is the variant of arc, path, and &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;-consistency tailored for being used by an algorithm that assigns values to variables following a given order of variables. They are similar to their non-directional counterparts, but only require that a consistent assignment to some variables can be consistently extended to another variable that is greater than them according to the order.&lt;br /&gt;
&lt;br /&gt;
===Directional arc and path consistency===&lt;br /&gt;
&lt;br /&gt;
[[Image:Directional-arc-1.svg|thumb|250px|An instance that is directionally arc consistent according to the order x1 x2 x3 but not arc consistent (no constraint is present between x1 and x3; corresponding edges omitted). Every value of a lower-index variable corresponds to values of higher index variables. Question marks indicate points where the converse does not hold.]]&lt;br /&gt;
If an algorithm evaluates variables in the order &amp;lt;math&amp;gt;x_1,\ldots,x_n&amp;lt;/math&amp;gt;, consistency is only useful when it guarantees that values of lower-index variables are all consistent with values of higher-index ones. &lt;br /&gt;
&lt;br /&gt;
When choosing a value for a variable, values that are inconsistent with all values of an unassigned variable can be neglected. Indeed, even if these values are all consistent with the current partial evaluation, the algorithm will later fail to find a consistent value for the unassigned variable. On the other hand, enforcing consistency with variables that are already evaluated is not necessary: if the algorithm chooses a value that is inconsistent with the current partial evaluation, inconsistency is detected anyway.&lt;br /&gt;
&lt;br /&gt;
Assuming that the order of evaluation of the variables is &amp;lt;math&amp;gt;x_1,\ldots,x_n&amp;lt;/math&amp;gt;, a constraint satisfaction problem is directionally arc consistent if every variable &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; is arc consistent with any other variable &amp;lt;math&amp;gt;x_j&amp;lt;/math&amp;gt; such that &amp;lt;math&amp;gt;i &amp;lt; j&amp;lt;/math&amp;gt;. Directional path consistency is similar, but two variables &amp;lt;math&amp;gt;x_i, x_j&amp;lt;/math&amp;gt; have to be path consistent with &amp;lt;math&amp;gt;x_z&amp;lt;/math&amp;gt; only if &amp;lt;math&amp;gt;i, j &amp;lt; z&amp;lt;/math&amp;gt;. Strong directional path consistency means both directional path consistency and directional arc consistency. Similar definitions can be given for the other forms of consistency.&lt;br /&gt;
&lt;br /&gt;
===Constraint propagation for arc and path consistency===&lt;br /&gt;
&lt;br /&gt;
Constraint propagation enforcing directional arc consistency iterates over variables from the last to the first, enforcing at each step the arc consistency of every variable of lower index with it. If the order of the variables is &amp;lt;math&amp;gt;x_1,\ldots,x_n&amp;lt;/math&amp;gt;, this algorithm iterates over variables from &amp;lt;math&amp;gt;x_n&amp;lt;/math&amp;gt; to &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt;; for variable &amp;lt;math&amp;gt;x_j&amp;lt;/math&amp;gt;, it enforces arc consistency of every variable of index lower than &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt; with &amp;lt;math&amp;gt;x_j&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=20 style=&amp;quot;border: thin gray solid;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Directional-arc-2.svg|220px]]&lt;br /&gt;
| [[Image:Directional-arc-3.svg|220px]]&lt;br /&gt;
| [[Image:Directional-arc-4.svg|220px]]&lt;br /&gt;
|-&lt;br /&gt;
| An instance that is not directional arc consistent: &amp;lt;math&amp;gt;x_1=2&amp;lt;/math&amp;gt; does not correspond to any value of &amp;lt;math&amp;gt;x_2&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;x_2=3&amp;lt;/math&amp;gt; does not correspond to any value of &amp;lt;math&amp;gt;x_3&amp;lt;/math&amp;gt;. No constraint is present between &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;x_3&amp;lt;/math&amp;gt; (corresponding edges are omitted).&lt;br /&gt;
| Enforcing directional arc consistency starts with &amp;lt;math&amp;gt;x_3&amp;lt;/math&amp;gt;, and makes &amp;lt;math&amp;gt;x_2&amp;lt;/math&amp;gt; arc consistent with it by removing the value &amp;lt;math&amp;gt;x_2=3&amp;lt;/math&amp;gt;.&lt;br /&gt;
| Enforcing directional arc consistent proceed with &amp;lt;math&amp;gt;x_2&amp;lt;/math&amp;gt;. Since &amp;lt;math&amp;gt;x_2=3&amp;lt;/math&amp;gt; has already been removed, both &amp;lt;math&amp;gt;x_1=2&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;x_1=3&amp;lt;/math&amp;gt; are removed.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Directional path consistency and strong directional path consistency can be enforced by algorithms similar to the one for arc consistency. They process variables from &amp;lt;math&amp;gt;x_n&amp;lt;/math&amp;gt; to &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt;; for every variable &amp;lt;math&amp;gt;x_z&amp;lt;/math&amp;gt; two variables &amp;lt;math&amp;gt;x_i,x_j&amp;lt;/math&amp;gt; with &amp;lt;math&amp;gt;i,j&amp;lt;z&amp;lt;/math&amp;gt; are considered, and path consistency of them with &amp;lt;math&amp;gt;x_z&amp;lt;/math&amp;gt; is enforced. No operation is required if the problem contains no constraint on &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;x_z&amp;lt;/math&amp;gt; or no constraint between &amp;lt;math&amp;gt;x_j&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;x_z&amp;lt;/math&amp;gt;. However, even if there is no constraint between &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;x_j&amp;lt;/math&amp;gt;, a trivial one is assumed. If constraint propagation reduces its set of satisfying assignments, it effectively create a new non-trivial constraint. Constraint propagation enforcing strong directional path consistency is similar, but also enforces arc consistency.&lt;br /&gt;
&lt;br /&gt;
===Directional consistency and satisfiability===&lt;br /&gt;
&lt;br /&gt;
Directional consistency guarantees that partial solutions satisfying a constraint can be consistently extended to another variable of higher index. However, it does not guarantee that the extensions to different variables are consistent with each other. For example, a partial solution may be consistently extended to variable &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; or to variable &amp;lt;math&amp;gt;x_j&amp;lt;/math&amp;gt;, but yet these two extensions are not consistent with each other.&lt;br /&gt;
&lt;br /&gt;
There are two cases in which this does not happen, and directional consistency guarantees satisfiability if no domain is empty and no constraint is unsatisfiable.&lt;br /&gt;
&lt;br /&gt;
The first case is that of a binary constraint problem with an ordering of the variables that makes the [[ordered graph]] of constraint having [[ordered graph|width]] 1. Such an ordering exists if and only if the graph of constraints is a tree. If this is the case, the width of the graph bounds the maximal number of lower (according to the ordering) nodes a node is joined to. Directional arc consistency guarantees that every consistent assignment to a variable can be extended to higher nodes, and width 1 guarantees that a node is not joined to more than one lower node. As a result, once the lower variable is assigned, its value can be consistently extended to every higher variable it is joined with. This extension cannot later lead to inconsistency. Indeed, no other lower variable is joined to that higher variable, as the graph has width 1.&lt;br /&gt;
&lt;br /&gt;
As a result, if a constraint problem has width 1 with respect to an ordering of its variables (which implies that its corresponding graph is a tree) and the problem is directionally arc consistent with respect to the same ordering, a solution (if any) can be found by iteratively assigning variables according to the ordering.&lt;br /&gt;
&lt;br /&gt;
The second case in which directional consistency guarantees satisfiability if no domain is empty and no constraint is unsatisfiable is that of binary constraint problems whose graph has [[ordered graph|induced width]] 2, using strong directional path consistency. Indeed, this form of consistency guarantees that every assignment to a variable or a pair of variables can be extended to a higher variable, and width 2 guarantees that this variable is not joined to another pair of lower variables.&lt;br /&gt;
&lt;br /&gt;
The reason why the induced width is considered instead of the width is that enforcing directional path consistency may add constraints. Indeed, if two variables are not in the same constraint but are in a constraint with a higher variable, some pairs of their values may violate path consistency. Removing such pairs creates a new constraint. As a result, constraint propagation may produce a problem whose graph have more edges than the original one. However, all these edges are necessarily in the induced graph, as they are all between two parents of the same node. Width 2 guarantees that every consistent partial evaluation can be extended to a solution, but this width is relative to the generated graph. As a result, induced width being 2 is required for strong directional path consistency to guarantee the existence of solutions.&lt;br /&gt;
&lt;br /&gt;
===Directional i-consistency===&lt;br /&gt;
&lt;br /&gt;
[[Image:Adaptive-1.svg|thumb|250px|The blue lines indicate that there is no constraint between x3 and x4, so that every pair of values is allowed. In these images, the lack of edges between two variables implicitly indicates the lack of a constraint. This problem has width 2.]]&lt;br /&gt;
Directional &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;-consistency is the guarantee that every consistent assignment to &amp;lt;math&amp;gt;i-1&amp;lt;/math&amp;gt; variables can be consistently extended to another variable that is higher in the order. Strong directional &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;-consistency is defined in a similar way, but all groups of &#039;&#039;at most&#039;&#039; &amp;lt;math&amp;gt;i-1&amp;lt;/math&amp;gt; variables are considered. If a problem is strongly directionally &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;-consistent and has width less than &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; and has no empty domain or unsatisfiable constraint, it has solutions.&lt;br /&gt;
&lt;br /&gt;
Every problem can be made strongly directionally &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;-consistent, but this operation may increase the width of its corresponding graphs. The constraint propagation procedure that enforces directional consistency is similar to that used for directional arc consistency and path consistency. The variables are considered in turn, from the last to the first according to the order. For variable &amp;lt;math&amp;gt;x_k&amp;lt;/math&amp;gt;, the algorithm considers every group of &amp;lt;math&amp;gt;i-1&amp;lt;/math&amp;gt; variables that have index lower than &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; and are in a constraint with &amp;lt;math&amp;gt;x_k&amp;lt;/math&amp;gt;. Consistency of these variables with &amp;lt;math&amp;gt;x_k&amp;lt;/math&amp;gt; is checked and possibly enforced by removing satisfying assignments from the constraint among all these &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; variables (if any, or creating a new one otherwise).&lt;br /&gt;
&lt;br /&gt;
[[Image:Adaptive-2.svg|thumb|250px|Enforcing consistency on x5 removes the red line, thus creating a new non-trivial constraint between x3 and x4. As a result, x4 has x3 as a new parent, in addition to x1 and x2. This change increases the width to 3.]]&lt;br /&gt;
This procedure generates a strongly directional &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;-consistent instance. However, it may also add new constraints to the instance. As a result, even if the width of the original problem is &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;, the width of the resulting instance may be greater. If this is the case, directional strong consistency does not imply satisfiability even if no domain is empty and no constraint is unsatisfiable.&lt;br /&gt;
&lt;br /&gt;
However, constraint propagation only adds constraints to variables that are lower than the one it is currently considering. As a result, no constraint over a variable is modified or added once the algorithm has dealt with this variable. Instead of considering a fixed &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;, one can modify it to the number of parents of each considered variable (the parents of a variable are the variables of index lower than the variable and that are in a constraint with the variable). This corresponds to considering all parents of a given variables at each step. In other words, for each variable &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; from the last to the first, all its parents are included in a new constraint that limits their values to the ones that are consistent with &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt;. Since this algorithm can be seen as a modification of the previous one with a value &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;  that is changed to the number of parents of each node, it is called &#039;&#039;adaptive consistency&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
This algorithm enforces strongly directional &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;-consistency with &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; equal to the induced width of the problem. The resulting instance is satisfiable if and only if no domain or constraint is made empty. If this is the case, a solution can be easily found by iteratively setting an unassigned variable to an arbitrary value, and propagating this partial evaluation to other variables. This algorithm is not always polynomial-time, as the number of constraints introduced by enforcing strong directional consistency may produce an exponential increase of size. The problem is however solvable in [[P (complexity)|polynomial time]] if the enforcing strong directional consistency does not superpolynomially enlarge the instance. As a result, if an instance has induced width bounded by a constant, it can be solved in polynomial time.&lt;br /&gt;
&lt;br /&gt;
===Bucket elimination===&lt;br /&gt;
&lt;br /&gt;
Bucket elimination is a satisfiability algorithm. It can be defined as a reformulation of adaptive consistency. Its definitions uses buckets, which are containers for constraint, each variable having an associated bucket. A constraint always belongs to the bucket of its highest variable.&lt;br /&gt;
&lt;br /&gt;
The bucket elimination algorithm proceeds from the highest to the lowest variable in turn. At each step, the constraints in the buckets of this variable &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; are considered. By definition, these constraints only involve variables that are lower than &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt;. The algorithm modifies the constraint between these lower variables (if any, otherwise it creates a new one). In particular, it enforces their values to be extendible to &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; consistently with the constraints in the bucket of &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt;. This new constraint, if any, is then placed in the appropriate bucket. Since this constraint only involves variables that are lower than &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt;, it is added to a bucket of a variable that is lower than &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This algorithm is equivalent to enforcing adaptive consistency. Since they both  enforce consistency of a variable with all its parents, and since no new constraint is added after a variable is considered, what results is an instance that can be solved without [[backtracking]].&lt;br /&gt;
&lt;br /&gt;
Since the graph of the instance they produce is a subgraph of the induced graph, if the induced width is bounded by a constant the generated instance is of size polynomial in the size of the original instance. As a result, if the induced width of an instance is bounded by a constant, solving it can be done in polynomial time by the two algorithms.&lt;br /&gt;
&lt;br /&gt;
==Relational consistency==&lt;br /&gt;
&lt;br /&gt;
While the previous definitions of consistency are all about consistency of assignments, &#039;&#039;relational consistency&#039;&#039; involves satisfaction of a given constraint or set of constraints only. More precisely, relational consistency implies that every consistent partial assignment can be extended in such a way that a given constraint or set of constraints is satisfied. Formally, a constraint &amp;lt;math&amp;gt;C&amp;lt;/math&amp;gt; on variables &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; is relational arc-consistent with one of its variables &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; if every consistent assignment to &amp;lt;math&amp;gt;X \backslash \{x\}&amp;lt;/math&amp;gt; can be extended to &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; in such a way &amp;lt;math&amp;gt;C&amp;lt;/math&amp;gt; is satisfied. The difference between &amp;quot;regular&amp;quot; &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; consistency and relational arc consistency is that the latter only requires the extended assignment to satisfy a given constraint, while the former requires it to satisfy all relevant constraints.&lt;br /&gt;
&lt;br /&gt;
[[Image:Relational-consistency-1.svg|left|frame|(Regular) i-consistency: if an evaluation is consistent, it can be extended to another variable in such a way all relevant constraints are satisfied.]]&lt;br /&gt;
[[Image:Relational-consistency-2.svg|left|frame|Relational arc consistency: if an evaluation on the variables of a constraint but one is consistent, it can always be extended to that variable in such a way &#039;&#039;the constraint&#039;&#039; is satisfied. The cyan edges represent constraints that need not to be satisfied by the extension.]]&lt;br /&gt;
&lt;br /&gt;
This definition can be extended to more than one constraint and more than one variable. In particular, relational path consistency is similar to relational arc-consistency, but two constraints are used in place of one. Two constraints are relational path consistent with a variable if every consistent assignemt to all their variable but the considered one can be extended in such a way the two constraints are satisfied.&lt;br /&gt;
&lt;br /&gt;
For more than two constraints, relational &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;-consistency is defined. Relational &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;-consistency involves a set of &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; constraints and a variable that is in the scope of all these constraints. In particular, these &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; constraints are relational &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;-consistent with the variable if every consistent assignment to all other variables that are in their scopes can be extended to the variable in such a way these constraints are satisfied. A problem is &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;-relational consistent if every set of &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; constraints is relational &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;-consistent with every variable that is in all their scopes. Strong relational &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; consistency is defined as above: it is the property of being relational &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;-consistent for every &amp;lt;math&amp;gt;k&amp;lt;m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Relational consistency can also be defined for more variables, instead of one. A set of &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; constraints is relational &amp;lt;math&amp;gt;(i,m)&amp;lt;/math&amp;gt;-consistent if every consistent assignment to a subset of &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; of their variables can be extended to an evaluation to all variables that satisfies all constraints. This definition does not exactly extends the above because the variables to which the evaluations are supposed to be extendible are not necessarily in all scopes of the involved constraints.&lt;br /&gt;
&lt;br /&gt;
If an order of the variables is given, relational consistency can be restricted to the cases when the variables(s) the evaluation should be extendable to follow the other variables in the order. This modified condition is called directional relational consistency.&lt;br /&gt;
&lt;br /&gt;
===Relational consistency and satisfiability===&lt;br /&gt;
&lt;br /&gt;
A constraint satisfaction problem may be relationally consistent, have no empty domain or unsatisfiable constraint, and yet be unsatisfiable. There are however some cases in which this is not possible.&lt;br /&gt;
&lt;br /&gt;
The first case is that of strongly relational &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;-consistent problem when the domains contain at most &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; elements. In this case, a consistent evaluation of &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; variables can be always extended to a single other variable. If &amp;lt;math&amp;gt;x_1=a_1,\ldots,x_k=a_k&amp;lt;/math&amp;gt; is such an evaluation and &amp;lt;math&amp;gt;x_{k+1}&amp;lt;/math&amp;gt; is the variable, there are only &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; possible values the variable can take. If all such values are inconsistent with the evaluation, there are &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; (non-necessarily unique) constraints that are violated by the evaluation and one of its possible values. As a result, the evaluation cannot be extended to satisfy all these &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;-or-less constraints, violating the condition of strong relational &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;-consistency.&lt;br /&gt;
&lt;br /&gt;
The second case is related to a measure of the constraints, rather than the domains. A constraint is &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;-tight if every evaluation to all its variables but one can be extended to satisfy the constraint either by all possible values of the other variable or by at most &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; of its values. Problem having &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;-tight constraints are satisfiable if and only if they are strongly relationally &amp;lt;math&amp;gt;m+1&amp;lt;/math&amp;gt;-consistent.&lt;br /&gt;
&lt;br /&gt;
[[Image:Row-convex.svg|frame|left|A row convex matrix: the 1&#039;s in each row are contiguous (no 0 in between them).]]&lt;br /&gt;
The third case is that of binary constraints that can be represented by row-convex matrices. A binary constraint can be represented by a bidimensional matrix &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt;, where &amp;lt;math&amp;gt;M_{ij}&amp;lt;/math&amp;gt; is 0 or 1 depending on whether the &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;-th value of the domain of &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; and the &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt;-th value of the domain of &amp;lt;math&amp;gt;x_j&amp;lt;/math&amp;gt; satisfy the constraint. A row of this matrix is convex if the 1&#039;s it contains are consecutive (formally, if two elements are 1, all elements in between are 1 as well). A matrix is row convex if all its rows are convex. &lt;br /&gt;
&lt;br /&gt;
[[Image:Row-convex-path.svg|frame|right|Each matrix represents the constraint between xi and xk+1. If a1..ak are values for x1..xk, the rows of a1..ak in each matrix tell the allowed values for xk+1. Row-convex-ness and strong relational path consistency imply the existence of a consistent value ak+1 for xk+1.]]&lt;br /&gt;
The condition that makes strong relational path consistency equivalent to satisfiability is that of constraint satisfaction problems for which there exists an order of the variables that makes all constraint to be represented by row convex matrices. This result is based on the fact that a set of convex rows having a common element pairwise also have a globally common element. Considering an evaluation over &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; variables, the allowed values for the &amp;lt;math&amp;gt;k+1&amp;lt;/math&amp;gt;-th one are given by selecting some rows from some constraints. In particular, for every variable among the &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; ones, the row relative to its value in the matrix representing the constraint relating it with the &amp;lt;math&amp;gt;k+1&amp;lt;/math&amp;gt; one represents the allowed values of the latter. Since these row are convex, and they have a common element pairwise because of path consistency, they also have a shared common element, which represents a value of the last variable that is consistent with the other ones.&lt;br /&gt;
&lt;br /&gt;
==Uses of local consistency==&lt;br /&gt;
All forms of local consistency can be enforced by constraint propagation, which may reduce the domains of variables and the sets of assignments satisfying a constraint and may introduce new constraints. Whenever constraint propagation produces an empty domain or an unsatisfiable constraint, the original problem is unsatisfiable. Therefore, all forms of local consistency can be used as approximations of satisfiability. More precisely, they can be used as incomplete unsatisfiability algorithms, as they can prove that a problem is unsatisfiable, but are in general unable to prove that a problem is satisfiable. Such approximated algorithms can be used by search algorithms ([[backtracking]], [[backjumping]], [[Local search (constraint satisfaction)|local search]], etc.) as heuristics for telling whether a partial solution can be extended to satisfy all constraints without further analyzing it.&lt;br /&gt;
&lt;br /&gt;
Even if constraint propagation does not produce an empty domain or an unsatisfiable constraint, it may nevertheless reduce the domains or strengthen the constraints. If this is the case, the [[Candidate solution|search space]] of the problem is reduced, thus reducing the amount of search needed to solve the problem.&lt;br /&gt;
&lt;br /&gt;
Local consistency proves satisfiability in some restricted cases (see [[Complexity of constraint satisfaction#Restrictions]]). This is the case for some special kind of problems and/or for some kinds of local consistency. For example, enforcing arc consistency on binary acyclic problems allows for telling whether the problem is satisfiable. Enforcing strong directional &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;-consistency allows telling the satisfiability of problems that have induced width &amp;lt;math&amp;gt;i-1&amp;lt;/math&amp;gt; according to the same order. Adaptive directional consistency allows telling the satisfiability of an arbitrary problem.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Unit propagation]]&lt;br /&gt;
*[[Constraint programming]]&lt;br /&gt;
*[[Constraint logic programming]]&lt;br /&gt;
*[[Look-ahead (backtracking)]]&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
*[http://www.ps.uni-sb.de/Papers/abstracts/tackDiss.html Constraint Propagation] - Dissertation by Guido Tack giving a good survey of theory and implementation issues&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
*{{cite book&lt;br /&gt;
| first=Christophe&lt;br /&gt;
| last=Lecoutre&lt;br /&gt;
| title=Constraint Networks: Techniques and Algorithms&lt;br /&gt;
| publisher=ISTE/Wiley&lt;br /&gt;
| year=2009&lt;br /&gt;
| url=http://www.iste.co.uk/index.php?f=a&amp;amp;ACTION=View&amp;amp;id=250&lt;br /&gt;
}} ISBN 978-1-84821-106-3&lt;br /&gt;
*{{cite book&lt;br /&gt;
| first=Rina&lt;br /&gt;
| last=Dechter&lt;br /&gt;
| title=Constraint processing&lt;br /&gt;
| publisher=Morgan Kaufmann&lt;br /&gt;
| year=2003&lt;br /&gt;
| url=http://www.ics.uci.edu/~dechter/books/index.html&lt;br /&gt;
}} ISBN 1-55860-890-7&lt;br /&gt;
*{{cite book&lt;br /&gt;
| first=Krzysztof&lt;br /&gt;
| last=Apt&lt;br /&gt;
| title=Principles of constraint programming&lt;br /&gt;
| publisher=Cambridge University Press&lt;br /&gt;
| year=2003&lt;br /&gt;
}} ISBN 0-521-82583-0&lt;br /&gt;
*{{cite book&lt;br /&gt;
| first=Kim&lt;br /&gt;
| last=Marriot&lt;br /&gt;
| coauthors=Peter J. Stuckey&lt;br /&gt;
| title=Programming with constraints: An introduction&lt;br /&gt;
| year=1998&lt;br /&gt;
| publisher=MIT Press&lt;br /&gt;
}} ISBN 0-262-13341-5&lt;br /&gt;
&lt;br /&gt;
[[Category:Constraint programming]]&lt;/div&gt;</summary>
		<author><name>165.91.241.3</name></author>
	</entry>
	<entry>
		<id>https://en.formulasearchengine.com/w/index.php?title=Cartan_connection&amp;diff=4666</id>
		<title>Cartan connection</title>
		<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/w/index.php?title=Cartan_connection&amp;diff=4666"/>
		<updated>2013-09-26T15:35:42Z</updated>

		<summary type="html">&lt;p&gt;165.91.100.122: the structure equation may only be written \eta\wedge\eta if the group is represented (and in this case, there is no 1/2 coefficient). For an abstract lie group, the lie algebra bracket is used.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In [[mathematics]], the &#039;&#039;&#039;Henstock–Kurzweil integral&#039;&#039;&#039; (also known as the (narrow) &#039;&#039;&#039;Denjoy integral&#039;&#039;&#039; (pronounced {{IPA-fr|dɑ̃ˈʒwa|}}), &#039;&#039;&#039;Luzin integral&#039;&#039;&#039; or &#039;&#039;&#039;Perron integral&#039;&#039;&#039;, not to be confused with the more general [[Khinchin integral|wide Denjoy integral]]) is one of a number of definitions of the [[integral]] of a [[function (mathematics)|function]]. It is a generalization of the [[Riemann integral]] which in some situations is more general than the [[Lebesgue integral]]. &lt;br /&gt;
&lt;br /&gt;
This integral was first defined by [[Arnaud Denjoy]] (1912). Denjoy was interested in a definition that would allow one to integrate functions like &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f(x)=\frac{1}{x}\sin\left(\frac{1}{x^3}\right).&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This function has a [[singularity (mathematics)|singularity]] at 0, and is not Lebesgue integrable. However, it seems natural to calculate its integral except over the interval  [&amp;amp;minus;ε,δ] and then let ε, δ → 0.&lt;br /&gt;
&lt;br /&gt;
Trying to create a general theory Denjoy used [[transfinite induction]] over the possible types of singularities which made the definition quite complicated. Other definitions were given by [[Nikolai Luzin]] (using variations on the notions of [[absolute continuity]]), and by [[Oskar Perron]], who was interested in continuous major and minor functions. It took a while to understand that the Perron and Denjoy integrals are actually identical. &lt;br /&gt;
&lt;br /&gt;
Later, in 1957, the Czech mathematician [[Jaroslav Kurzweil]] discovered a new definition of this integral elegantly similar in nature to [[Riemann]]&#039;s original definition which he named the &#039;&#039;&#039;gauge integral&#039;&#039;&#039;; the theory was developed by [[Ralph Henstock]]. Due to these two important mathematicians, it is now commonly known as the &#039;&#039;&#039;Henstock–Kurzweil integral&#039;&#039;&#039;. The simplicity of Kurzweil&#039;s definition made some educators advocate that this integral should replace the Riemann integral in introductory calculus courses, but this idea has not gained traction.{{cn|date=January 2014}}&lt;br /&gt;
&lt;br /&gt;
==Definition==&lt;br /&gt;
Henstock&#039;s definition is as follows:&lt;br /&gt;
&lt;br /&gt;
Given a [[tagged partition]] &#039;&#039;P&#039;&#039; of [&#039;&#039;a&#039;&#039;, &#039;&#039;b&#039;&#039;], say &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a = u_0 &amp;lt; u_1 &amp;lt; \cdots &amp;lt; u_n = b, \ \ t_i \in [u_{i-1}, u_i]&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
and a positive function &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\delta \colon [a, b] \to (0, \infty),\,&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which we call a &#039;&#039;gauge&#039;&#039;, we say &#039;&#039;P &#039;&#039;is &amp;lt;math&amp;gt;\delta&amp;lt;/math&amp;gt;-fine if &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\forall i \ \ t_i-\delta(t_i)&amp;lt; u_{i-1} \leq t_i \leq u_i &amp;lt; t_i + \delta (t_i). &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a tagged partition &#039;&#039;P&#039;&#039; and a function &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f \colon [a, b] \to \mathbb{R}&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
we define the Riemann sum to be &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \sum_P f = \sum_{i = 1}^n (u_i - u_{i-1}) f(t_i).&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Given a function &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f \colon [a, b] \to \mathbb{R},&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
we now define a number &#039;&#039;I&#039;&#039; to be the Henstock–Kurzweil integral of &#039;&#039;f&#039;&#039; if for every ε&amp;amp;nbsp;&amp;gt;&amp;amp;nbsp;0 there exists a gauge &amp;lt;math&amp;gt;\delta&amp;lt;/math&amp;gt; such that whenever &#039;&#039;P&#039;&#039; is &amp;lt;math&amp;gt;\delta&amp;lt;/math&amp;gt;-fine, we have &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; {\Big \vert} \sum_P f - I {\Big \vert} &amp;lt; \varepsilon. &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
If such an &#039;&#039;I&#039;&#039; exists, we say that &#039;&#039;f&#039;&#039; is Henstock–Kurzweil integrable on [&#039;&#039;a&#039;&#039;, &#039;&#039;b&#039;&#039;].&lt;br /&gt;
&lt;br /&gt;
[[Cousin&#039;s theorem]] states that for every gauge &amp;lt;math&amp;gt;\delta&amp;lt;/math&amp;gt;, such a &amp;lt;math&amp;gt;\delta&amp;lt;/math&amp;gt;-fine partition &#039;&#039;P&#039;&#039; does exist, so this condition cannot be satisfied [[vacuous truth|vacuously]]. The Riemann integral can be regarded as the special case where we only allow constant gauges.&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&lt;br /&gt;
Let {{nowrap|&#039;&#039;f&#039;&#039;: [&#039;&#039;a&#039;&#039;, &#039;&#039;b&#039;&#039;] → &#039;&#039;&#039;R&#039;&#039;&#039;}} be any function.&lt;br /&gt;
&lt;br /&gt;
If {{nowrap|&#039;&#039;a&#039;&#039; &amp;lt; &#039;&#039;c&#039;&#039; &amp;lt; &#039;&#039;b&#039;&#039;}}, then &#039;&#039;f&#039;&#039; is Henstock–Kurzweil integrable on [&#039;&#039;a&#039;&#039;,&amp;amp;nbsp;&#039;&#039;b&#039;&#039;] if and only if it is Henstock–Kurzweil integrable on both [&#039;&#039;a&#039;&#039;,&amp;amp;nbsp;&#039;&#039;c&#039;&#039;] and [&#039;&#039;c&#039;&#039;,&amp;amp;nbsp;&#039;&#039;b&#039;&#039;], and then&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\int_a^bf(x)\,dx=\int_a^cf(x)\,dx+\int_c^bf(x)\,dx.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Henstock–Kurzweil integral is linear, i.e., if &#039;&#039;f&#039;&#039; and &#039;&#039;g&#039;&#039; are integrable, and α, β are reals, then α&#039;&#039;f&#039;&#039; + β&#039;&#039;g&#039;&#039; is integrable and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\int_a^b\alpha f(x)+\beta g(x)\,dx=\alpha\int_a^bf(x)\,dx+\beta\int_a^bg(x)\,dx.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &#039;&#039;f&#039;&#039; is Riemann or Lebesgue integrable, then it is also Henstock–Kurzweil integrable, and the values of the integrals are the same. The important [[Hake&#039;s theorem]] states that&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\int_a^bf(x)\,dx=\lim_{c\to b^-}\int_a^cf(x)\,dx&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
whenever either side of the equation exists, and symmetrically for the lower integration bound. This means that if &#039;&#039;f&#039;&#039; is &amp;quot;[[improper integral|improperly]] Henstock–Kurzweil integrable&amp;quot;, then it is properly Henstock–Kurzweil integrable; in particular, improper Riemann or Lebesgue integrals such as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\int_0^1\frac{\sin(1/x)}x\,dx&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
are also Henstock–Kurzweil integrals. This shows that there is no sense in studying an &amp;quot;improper Henstock–Kurzweil integral&amp;quot; with finite bounds. However, it makes sense to consider improper Henstock–Kurzweil integrals with infinite bounds such as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\int_a^{\infty} f(x)\,dx := \lim_{b\to\infty}\int_a^bf(x)\,dx.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For many types of functions the Henstock–Kurzweil integral is no more general than Lebesgue integral. For example, if &#039;&#039;f&#039;&#039; is bounded with compact support, the following are equivalent:&lt;br /&gt;
*&#039;&#039;f&#039;&#039; is Henstock–Kurzweil integrable,&lt;br /&gt;
*&#039;&#039;f&#039;&#039; is Lebesgue integrable,&lt;br /&gt;
*&#039;&#039;f&#039;&#039; is [[measurable function|Lebesgue measurable]].&lt;br /&gt;
In general, every Henstock–Kurzweil integrable function is measurable, and &#039;&#039;f&#039;&#039; is Lebesgue integrable if and only if both &#039;&#039;f&#039;&#039; and |&#039;&#039;f&#039;&#039;| are Henstock–Kurzweil integrable. This means that the Henstock–Kurzweil integral can be thought of as a &amp;quot;[[absolute convergence|non-absolutely convergent]] version of Lebesgue integral&amp;quot;. It also implies that the Henstock–Kurzweil integral satisfies appropriate versions of the [[monotone convergence theorem#Lebesgue monotone convergence theorem|monotone convergence theorem]] (without requiring the functions to be nonnegative) and [[dominated convergence theorem]] (where the condition of dominance is loosened to &#039;&#039;g&#039;&#039;(&#039;&#039;x&#039;&#039;) ≤ &#039;&#039;f&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;&#039;&#039;(&#039;&#039;x&#039;&#039;) ≤ &#039;&#039;h&#039;&#039;(&#039;&#039;x&#039;&#039;) for some integrable &#039;&#039;g&#039;&#039;, &#039;&#039;h&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
If &#039;&#039;F&#039;&#039; is differentiable everywhere (or with countable many exceptions), the derivative &#039;&#039;F&#039;&#039;&amp;amp;prime; is Henstock–Kurzweil integrable, and its indefinite Henstock–Kurzweil integral is &#039;&#039;F&#039;&#039;.  (Note that &#039;&#039;F&#039;&#039;&amp;amp;prime; need not be Lebesgue integrable.) In other words, we obtain a simpler and more satisfactory version of the [[second fundamental theorem of calculus]]: each differentiable function is, up to a constant, the integral of its derivative:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;F(x) - F(a) = \int_a^x F&#039;(t) \,dt.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Conversely, the [[Lebesgue differentiation theorem]] continues to holds for the Henstock–Kurzweil integral: if &#039;&#039;f&#039;&#039; is Henstock–Kurzweil integrable on [&#039;&#039;a&#039;&#039;,&amp;amp;nbsp;&#039;&#039;b&#039;&#039;], and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;F(x)=\int_a^xf(t)\,dt,&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then &#039;&#039;F&#039;&#039;&amp;amp;prime;(&#039;&#039;x&#039;&#039;) = &#039;&#039;f&#039;&#039;(&#039;&#039;x&#039;&#039;) almost everywhere in [&#039;&#039;a&#039;&#039;,&amp;amp;nbsp;&#039;&#039;b&#039;&#039;] (in particular, &#039;&#039;F&#039;&#039; is almost everywhere differentiable).&lt;br /&gt;
&lt;br /&gt;
The space of all Henstock&amp;amp;ndash;Kurzweil-integrable functions is often endowed with the [[Alexiewicz norm]], with respect to which it is [[barrelled space|barrelled]] but [[complete space|incomplete]].&lt;br /&gt;
&lt;br /&gt;
==McShane integral==&lt;br /&gt;
Interestingly, [[Lebesgue integral]] on a line can also be presented in a similar fashion. &lt;br /&gt;
&lt;br /&gt;
First of all, change of&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\forall i \ \ u_i - u_{i-1} &amp;lt; \delta (t_i)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\forall i \ \ [u_{i-1},u_i]\subset U_{\delta (t_i)}(t_i)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(here &amp;lt;math&amp;gt;U_{\varepsilon}(a)&amp;lt;/math&amp;gt; is a &amp;lt;math&amp;gt;\varepsilon&amp;lt;/math&amp;gt;-neighbourhood of &#039;&#039;a&#039;&#039;) in the notion of &amp;lt;math&amp;gt;\delta&amp;lt;/math&amp;gt;-fine partition yields a definition of the Henstock–Kurzweil integral equivalent to the one given above. But after this change we can drop condition&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;t_i \in [u_{i-1}, u_i]&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
and get a definition of &#039;&#039;McShane integral&#039;&#039;, which is equivalent to the Lebesgue integral.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* {{cite book | first = Robert G. |last= Bartle | author-link=Robert G. Bartle| title = A Modern Theory of Integration | series = Graduate Studies in Mathematics |volume = 32 |publisher=American Mathematical Society | year=2001 | isbn=978-0-8218-0845-0}}&lt;br /&gt;
* {{cite book | first1 = Robert G. |last1 = Bartle | author-link=Robert G. Bartle| first2= Donald R. |last2= Sherbert|title = Introduction to Real Analysis |publisher=Wiley |edition=3rd| year=1999 | isbn=978-0-471-32148-4}}  &lt;br /&gt;
* {{cite book | first1=V G |last1=Čelidze |first2= A G |last2= Džvaršeǐšvili|title= The Theory of the Denjoy Integral and Some Applications | series= Series in Real Analysis | volume=3| publisher=World Scientific Publishing Company | year = 1989 |isbn=978-981-02-0021-3}}&lt;br /&gt;
* {{cite book |first1= A.G. |last = Das|title=The Riemann, Lebesgue, and Generalized Riemann Integrals |publisher=Narosa Publishers |year=2008 |isbn = 978-81-7319-933-2 }}&lt;br /&gt;
* {{cite book | last=Gordon | first=Russell A. | title=The integrals of Lebesgue, Denjoy, Perron, and Henstock | series=Graduate Studies in Mathematics | volume=4  | publisher=American Mathematical Society | location=Providence, RI | year=1994 | isbn=978-0-8218-3805-1 }}&lt;br /&gt;
* {{cite book | first=Ralph|last=Henstock| author-link=Ralph Henstock | title=Lectures on the Theory of Integration|series = Series in Real Analysis | volume=1| publisher=World Scientific Publishing Company | year=1988|isbn=978-9971-5-0450-2}}&lt;br /&gt;
* {{cite book | first = Jaroslav | last= Kurzweil | author-link=Jaroslav Kurzweil | title=Henstock-Kurzweil Integration: Its Relation to Topological Vector Spaces |series = Series in Real Analysis | volume=7| publisher=World Scientific Publishing Company | year = 2000 |isbn=978-981-02-4207-7}}&lt;br /&gt;
* {{cite book | first = Jaroslav | last= Kurzweil | author-link=Jaroslav Kurzweil | title=Integration Between the Lebesgue Integral and the Henstock-Kurzweil Integral: Its Relation to Locally Convex Vector Spaces|series = Series in Real Analysis | volume=8| publisher=World Scientific Publishing Company | year = 2002 |isbn=978-981-238-046-3}}&lt;br /&gt;
* {{cite book |first=Solomon |last=Leader |title = The Kurzweil-Henstock Integral &amp;amp; Its Differentials | series= Pure and Applied Mathematics Series | publisher= CRC | year = 2001 | isbn = 978-0-8247-0535-0 }} &lt;br /&gt;
* {{cite book | first=Peng-Yee |last=Lee | title=Lanzhou Lectures on Henstock Integration|series = Series in Real Analysis | volume=2| publisher=World Scientific Publishing Company | year = 1989 |isbn=978-9971-5-0891-3}}&lt;br /&gt;
* {{cite book | last1=Lee |first1 = Peng-Yee |last2= Výborný|first2=Rudolf |title = Integral: An Easy Approach after Kurzweil and Henstock |series = Australian Mathematical Society Lecture Series | publisher= Cambridge University Press |year=2000|isbn=978-0-521-77968-5}}&lt;br /&gt;
* {{cite book | last=McLeod | first=Robert M. | title=The generalized Riemann integral | series=Carus Mathematical Monographs|volume=20 | publisher=Mathematical Association of America | location=Washington, D.C. | year=1980 | isbn=978-0-88385-021-3 }}&lt;br /&gt;
* {{cite book | last=Swartz | first=Charles W. |title=Introduction to Gauge Integrals | publisher= World Scientific Publishing Company |year=2001 | isbn=978-981-02-4239-8 }}&lt;br /&gt;
* {{cite book | first1= Charles W. |last1= Swartz| first2 =Douglas S. | last2=Kurtz |title= Theories of Integration: The Integrals of Riemann, Lebesgue, Henstock-Kurzweil, and McShane|series= Series in Real Analysis |volume=9| publisher= World Scientific Publishing Company | year = 2004 |isbn = 978-981-256-611-9 }}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
The following are additional resources on the web for learning more:&lt;br /&gt;
* {{springer|title=Kurzweil-Henstock integral|id=p/k110200}}&lt;br /&gt;
* http://www.math.vanderbilt.edu/~schectex/ccc/gauge/&lt;br /&gt;
* http://www.math.vanderbilt.edu/~schectex/ccc/gauge/letter/&lt;br /&gt;
* http://mathdl.maa.org/mathDL/22/?pa=content&amp;amp;sa=viewDocument&amp;amp;nodeId=2900&lt;br /&gt;
&lt;br /&gt;
{{integral}}&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Henstock-Kurzweil integral}}&lt;br /&gt;
[[Category:Definitions of mathematical integration]]&lt;/div&gt;</summary>
		<author><name>165.91.100.122</name></author>
	</entry>
	<entry>
		<id>https://en.formulasearchengine.com/w/index.php?title=Spin_crossover&amp;diff=264392</id>
		<title>Spin crossover</title>
		<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/w/index.php?title=Spin_crossover&amp;diff=264392"/>
		<updated>2012-08-08T22:16:37Z</updated>

		<summary type="html">&lt;p&gt;165.91.46.7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It involves expertise and knowledge of various tools and technologies used for creating websites. This means you can setup your mailing list and auto-responder on your wordpress site and then you can add your subscription form to any other blog, splash page, capture page or any other site you like. Your parishioners and certainly interested audience can come in to you for further information from the group and sometimes even approaching happenings and systems with the church. 2- Ask for the designs and graphics that will be provided along with the Word - Press theme. You can customize the appearance with PSD to Word - Press conversion &#039;&#039;. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Any business enterprise that is certainly worth its name should really shell out a good deal in making sure that they have the most effective website that provides related info to its prospect. WPTouch is among the more well known Word - Press smartphone plugins which is currently in use by thousands of users.  When you have any kind of concerns about where by along with the way to work with [http://deurl.de/backup_plugin_906445 wordpress backup], you possibly can e-mail us from our own website. This plugin allows a blogger get more Facebook fans on the related fan page. By purchasing Word - Press weblogs you can acquire your very own domain title and have total command of your web site. You can also get a free keyword tool that is to determine how strong other competing sites are and number of the searches on the most popular search sites. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Here are a few reasons as to why people prefer Word - Press over other software&#039;s. The nominee in each category with the most votes was crowned the 2010 Parents Picks Awards WINNER and has been established as the best product, tip or place in that category. Possibly the most downloaded Word - Press plugin, the Google XML Sitemaps plugin but not only automatically creates a site map linking to everyone your pages and posts, it also notifies Google, Bing, Yahoo, and Ask. Nonetheless, with stylish Facebook themes obtainable on the Globe Broad Internet, half of your enterprise is done previously. Have you heard about niche marketing and advertising. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;A built-in widget which allows you to embed quickly video from popular websites. * Robust CRM to control and connect with your subscribers. Thus it is difficult to outrank any one of these because of their different usages. The most important plugins you will need are All-in-One SEO Pack, some social bookmarking plugin, a Feedburner plugin and an RSS sign up button. It does take time to come up having a website that gives you the much needed results hence the web developer must be ready to help you along the route. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Under Settings &amp;amp;mdash;&amp;gt; Reading, determine if posts or a static page will be your home page, and if your home page is a static page, what page will contain blog posts. By using Word - Press MLM websites or blogs, an online presence for you and your MLM company can be created swiftly and simply. It can be concluded that white label SEO comprise of a third party who resells a contract involving IT expert or consultant, SEO professional and end user. with posts or testimonials updated as they are uploaded to a particular section of the website. However, if you&#039;re just starting out your blog site or business site, you can still search for an ideal theme for it without breaking your bank account.&lt;/div&gt;</summary>
		<author><name>165.91.46.7</name></author>
	</entry>
	<entry>
		<id>https://en.formulasearchengine.com/w/index.php?title=Q-Vectors&amp;diff=270014</id>
		<title>Q-Vectors</title>
		<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/w/index.php?title=Q-Vectors&amp;diff=270014"/>
		<updated>2012-03-21T15:18:33Z</updated>

		<summary type="html">&lt;p&gt;165.91.4.34: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Four or five years ago, a reader of some of my columns bought the domain name jamesaltucher.com and gave it to me as a birthday gift. It was a total surprise to me. I didn&#039;t even know the reader. I hope one day we meet.&amp;lt;br&amp;gt;Two years ago a friend of mine, Tim Sykes, insisted I had to have a blog. He set it up for me. He even wrote the &amp;quot;About Me&amp;quot;. I didn&#039;t want a blog. I had nothing to say. But about 6 or 7 months ago I decided I wanted to take this blog seriously. I kept putting off changing the &amp;quot;About Me&amp;quot; which was no longer really about me and maybe never was.&amp;lt;br&amp;gt;A few weeks ago I did a chapter in one of the books in Seth Godin&#039;s &amp;quot;The Domino Project&amp;quot;. The book is out and called &amp;quot;No Idling&amp;quot;. Mohit Pewar organized it (here&#039;s Mohit&#039;s blog) and sent me a bunch of questions recently. It&#039;s intended to be an interview on his blog but I hope Mohit forgives me because I want to use it as my new &amp;quot;About Me&amp;quot; also.&amp;lt;br&amp;gt;1. You are a trader, investor, writer, and entrepreneur? Which of these roles you enjoy the most and why?&amp;lt;br&amp;gt;When I first moved to New York City in 1994 I wanted to be everything to everyone. I had spent the six years prior to that writing a bunch of unpublished novels and unpublished short stories. I must&#039;ve sent out 100s of stories to literary journals. I got form rejections from every publisher, journal, and agent I sent my novels and stories to.&amp;lt;br&amp;gt;Now, in 1994, everything was possible. The money was in NYC. Media was here. I lived in my 10�10 room and pulled suits out of a garbage bag every morning but it didn&#039;t matter...the internet was revving up and I knew how to build a website. One of the few in the city. My sister warned me though: nobody here is your friend. Everybody wants something&amp;lt;br&amp;gt;&lt;br /&gt;
And I wanted something. I wanted the fleeting feelings of success, for the first time ever, in order to feel better about myself. I wanted a girl next to me. I wanted to build and sell companies and finally prove to everyone I was the smartest. I wanted to do a TV show. I wanted to write books&amp;lt;br&amp;gt;&lt;br /&gt;
But everything involved having a master. Clients. Employers. Investors. Publishers. The market (the deadliest master of all). Employees. I was a slave to everyone for so many years. And the more shackles I had on, the lonelier I got&amp;lt;br&amp;gt;&lt;br /&gt;
Much of the time, even when I had those moments of success, I didn&#039;t know how to turn it into a better life. I felt ugly and then later, I felt stupid when I would let the success dribble away down the sink&amp;lt;br&amp;gt;&lt;br /&gt;
I love writing because every now and then that ugliness turns into honesty. When I write, I&#039;m only a slave to myself. When I do all of those other things you ask about, I&#039;m a slave to everyone else&amp;lt;br&amp;gt;&lt;br /&gt;
Some links&amp;lt;br&amp;gt;&lt;br /&gt;
33 Unusual Tips to Being a Better Write&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;quot;The Tooth&amp;lt;br&amp;gt;&lt;br /&gt;
(one of my favorite posts on my blog&amp;lt;br&amp;gt;&lt;br /&gt;
2. What inspires you to get up and start working/writing every day&amp;lt;br&amp;gt;&lt;br /&gt;
The other day I had breakfast with a fascinating guy who had just sold a piece of his fund of funds. He told me what &amp;quot;fracking&amp;quot; was and how the US was going to be a major oil player again. We spoke for two hours about a wide range of topics, including what happens when we can finally implant a google chip in our brains&amp;lt;br&amp;gt;&lt;br /&gt;
After that I had to go onto NPR because I firmly believe that in one important respect we are degenerating as a country - we are graduating a generation of indentured servants who will spend 50 years or more paying down their student debt rather than starting companies and curing cancer. So maybe I made a difference&amp;lt;br&amp;gt;&lt;br /&gt;
Then I had lunch with a guy I hadn&#039;t seen in ten years. In those ten years he had gone to jail and now I was finally taking the time to forgive him for something he never did to me. I felt bad I hadn&#039;t helped him when he was at his low point. Then I came home and watched my kid play clarinet at her school. Then I read until I fell asleep. Today I did nothing but write. Both days inspired me&amp;lt;br&amp;gt;&lt;br /&gt;
It also inspires me that I&#039;m being asked these questions. Whenever anyone asks me to do anything I&#039;m infinitely grateful. Why me? I feel lucky. I like it when someone cares what I think. I&#039;ll write and do things as long as anyone cares. I honestly probably wouldn&#039;t write if nobody cared. I don&#039;t have enough humility for that, I&#039;m ashamed to admit&amp;lt;br&amp;gt;&lt;br /&gt;
3. Your new book &amp;quot;How to be the luckiest person alive&amp;quot; has just come out. What is it about&amp;lt;br&amp;gt;&lt;br /&gt;
When I was a kid I thought I needed certain things: a college education from a great school, a great home, a lot of money, someone who would love me with ease. I wanted people to think I was smart. I wanted people to think I was even special.  And as I grew older more and more goals got added to the list: a high chess rating, a published book, perfect weather, good friends,  respect in various fields, etc. I lied to myself that I needed these things to be happy. The world was going to work hard to give me these things, I thought. But it turned out the world owed me no favors&amp;lt;br&amp;gt;&lt;br /&gt;
And gradually, over time, I lost everything I had ever gained. Several times.  I&#039;ve paced at night so many times wondering what the hell was I going to do next or trying not to care. The book is about regaining your sanity, regaining your happiness, finding luck in all the little pockets of life that people forget about. It&#039;s about turning away from the religion you&#039;ve been hypnotized into believing into the religion you can find inside yourself every moment of the day&amp;lt;br&amp;gt;&lt;br /&gt;
[Note: in a few days I&#039;m going to do a post on self-publishing and also how to get the ebook for free. The link above is to the paperback. Kindle should be ready soon also.&amp;lt;br&amp;gt;&lt;br /&gt;
Related link: Why I Write Books Even Though I&#039;ve Lost Money On Every Book I&#039;ve Ever Writte&amp;lt;br&amp;gt;&lt;br /&gt;
4. Is it possible to accelerate success? If yes, how&amp;lt;br&amp;gt;&lt;br /&gt;
Yes, and it&#039;s the only way I know actually to achieve success. It&#039;s by following the Daily Practice I outline in this post:&amp;lt;br&amp;gt;&lt;br /&gt;
It&#039;s the only way I know to exercise every muscle from the inside of you to the outside of you. I firmly believe that happiness starts with that practice&amp;lt;br&amp;gt;&lt;br /&gt;
5. You say that discipline, persistence and psychology are important if one has to achieve success. How can one work on improving &amp;quot;psychology&amp;quot; part&amp;lt;br&amp;gt;&lt;br /&gt;
Success doesn&#039;t really mean anything. People want to be happy in a harsh and unforgiving world. It&#039;s very difficult. We&#039;re  [http://www.pcs-systems.co.uk/Images/celinebag.aspx http://www.pcs-systems.co.uk/Images/celinebag.aspx] so lucky most of us live in countries without major wars. Our kids aren&#039;t getting killed by random gunfire. We all have cell phones. We all can communicate with each other on the Internet. We have Google to catalog every piece of information in history!  We are so amazingly lucky already&amp;lt;br&amp;gt;&lt;br /&gt;
How can it be I was so lucky to be born into such a body? In New York City of all places? Just by being born in such a way on this planet was an amazing success&amp;lt;br&amp;gt;&lt;br /&gt;
So what else is there? The fact is that most of us, including me, have a hard time being happy with such ready-made success. We quickly adapt and want so much more out of life. It&#039;s not wars or disease that kill us. It&#039;s the minor inconveniences that add up in life. It&#039;s the times we feel slighted or betrayed. Or even slightly betrayed. Or overcharged. Or we miss a train. Or it&#039;s raining today. Or the dishwasher doesn&#039;t work. Or the supermarket doesn&#039;t have the food we like. We forget how good the snow tasted when we were kids. Now we want gourmet food at every meal&amp;lt;br&amp;gt;&lt;br /&gt;
Taking a step back, doing the Daily Practice I outline in the question above. For me, the results of that bring me happiness. That&#039;s success. Today. And hopefully tomorrow&amp;lt;br&amp;gt;&lt;br /&gt;
6. You advocate not sending kids to college. What if kids grow up and then blame their parents about not letting them get a college education&amp;lt;br&amp;gt;&lt;br /&gt;
I went to one of my kid&#039;s music recitals yesterday. She was happy to see me. I hugged her afterwards. She played &amp;quot;the star wars theme&amp;quot; on the clarinet. I wish I could&#039;ve played that for my parents. My other daughter has a dance recital in a few weeks. I tried to give her tips but she laughed at me. I was quite the breakdancer in my youth. The [http://Www.google.co.uk/search?hl=en&amp;amp;gl=us&amp;amp;tbm=nws&amp;amp;q=nerdiest+breakdancer&amp;amp;gs_l=news nerdiest breakdancer] on the planet. I want to be present for them. To love them. To let them always know that in their own dark moments, they know I will listen to them. I love them. Even when they cry and don&#039;t always agree with me. Even when they laugh at me because sometimes I act like a clown&amp;lt;br&amp;gt;&lt;br /&gt;
Later, if they want to blame me for anything at all then I will still love them. That&#039;s my &amp;quot;what if&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
Two posts&amp;lt;br&amp;gt;&lt;br /&gt;
I want my daughters to be lesbian&amp;lt;br&amp;gt;&lt;br /&gt;
Advice I want to give my daughter&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7. Four of your favorite posts from The Altucher Confidential&amp;lt;br&amp;gt;&lt;br /&gt;
As soon as I publish a post I get scared to death. Is it good? Will people re-tweet? Will one part of the audience of this blog like it at the expense of another part of the audience. Will I get Facebook Likes? I have to stop clinging to these things but you also need to respect the audience. I don&#039;t know. It&#039;s a little bit confusing to me. I don&#039;t have the confidence of a real writer yet&amp;lt;br&amp;gt;&lt;br /&gt;
Here are four of my favorites&amp;lt;br&amp;gt;&lt;br /&gt;
How I screwed Yasser Arafat out of $2mm (and lost another $100mm in the process&amp;lt;br&amp;gt;&lt;br /&gt;
It&#039;s Your Fault&amp;lt;br&amp;gt;&lt;br /&gt;
I&#039;m Guilty of Torturing Wome&amp;lt;br&amp;gt;&lt;br /&gt;
The Girl Whose Name Was a Curs&amp;lt;br&amp;gt;&lt;br /&gt;
Although these three are favorites I really don&#039;t post anything unless it&#039;s my favorite of that moment&amp;lt;br&amp;gt;&lt;br /&gt;
8. 3 must-read books for aspiring entrepreneurs&amp;lt;br&amp;gt;&lt;br /&gt;
The key in an entrepreneur book: you want to learn business. You want to learn how to honestly communicate with your customers. You want to stand out&amp;lt;br&amp;gt;&lt;br /&gt;
The Essays of Warren Buffett by Lawrence Cunningha&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;quot;The Thank you Economy&amp;quot; by Gary Vaynerchu&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;quot;Purple cow&amp;quot; by Seth Godi&amp;lt;br&amp;gt;&lt;br /&gt;
9. I love your writing, so do so many others out there. Who are your favorite writers&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;quot;Jesus&#039;s Son&amp;quot; by Denis Johnson is the best collection of short stories ever written. I&#039;m afraid I really don&#039;t like his novels though&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;quot;Tangents&amp;quot; by M. Prado. A beautiful series of graphic stories about relationships&amp;lt;br&amp;gt;&lt;br /&gt;
Other writers: Miranda July, Ariel Leve, Mary Gaitskill, Charles Bukowski, Celine, Sam Lipsyte, William Vollmann, Raymond Carver. Arthur Nersesian. Stephen Dubner&amp;lt;br&amp;gt;&lt;br /&gt;
Many writers are only really good storytellers. Most writers come out of a cardboard factory MFA system and lack a real voice. A real voice is where every word exposes ten levels of hypocrisy in the world and brings us all the way back to see reality. The writers above have their own voices, their own pains, and their unique ways of expressing those pains. Some of them are funny. Some a little more dark. I wish I could write 1/10 as good as any of them&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
10. You are a prolific writer. Do you have any hacks that help you write a lot in little time&amp;lt;br&amp;gt;&lt;br /&gt;
Coffee, plus everything else coffee does for you first thing in the morning&amp;lt;br&amp;gt;&lt;br /&gt;
Only write about things you either love or hate. But if you hate something, try to find a tiny gem buried in the bag of dirt so you can reach in when nobody is looking and put that gem in your pocket. Stealing a diamond in all the shit around us and then giving it away for free via writing is a nice little hack, Being fearless precisely when you are most scared is the best hack&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
11. I totally get and love your idea about bleeding as a writer, appreciate if you share more with the readers of this blog&amp;lt;br&amp;gt;&lt;br /&gt;
Most people worry about what other people think of them. Most people worry about their health. Most people are at a crossroads and don&#039;t know how to take the next step and which road to take it on. Everyone is in a perpetual state of &#039;where do I put my foot next&#039;. Nobody, including me, can avoid that&amp;lt;br&amp;gt;&lt;br /&gt;
You and I both need to wash our faces in the morning, brush our teeth, shower, shit, eat, fight the weather, fight the colds that want to attack us if we&#039;re not ready. Fight loneliness or learn how to love and appreciate the people who want to love you back. And learn how to forgive and love the people who are even more stupid and cruel than we are. We&#039;re afraid to tell each other these things because they are all both disgusting and true&amp;lt;br&amp;gt;&lt;br /&gt;
You and I both have the same color blood. If I cut my wrist open you can see the color of my blood. You look at it and see that it&#039;s the same color as yours. We have something in common. It doesn&#039;t have to be shameful. It&#039;s just red. Now we&#039;re friends. No matter whom you are or where you are from. I didn&#039;t have to lie to you to get you to be my friend&amp;lt;br&amp;gt;&lt;br /&gt;
Related Links&amp;lt;br&amp;gt;&lt;br /&gt;
How to be a Psychic in Ten Easy Lesson&amp;lt;br&amp;gt;&lt;br /&gt;
My New Year&#039;s Resolution in 199&amp;lt;br&amp;gt;&lt;br /&gt;
12. What is your advice for young entrepreneurs&amp;lt;br&amp;gt;&lt;br /&gt;
Only build something you really want to use yourself. There&#039;s got to be one thing you are completely desperate for and no matter where you look you can&#039;t find it. Nobody has invented it yet. So there you go - you invent it. If there&#039;s other people like you, you have a business. Else. You fail. Then do it again. Until it works. One day it will&amp;lt;br&amp;gt;&lt;br /&gt;
Follow these 100 Rules&amp;lt;br&amp;gt;&lt;br /&gt;
The 100 Rules for Being a Good Entrepreneur&amp;lt;br&amp;gt;&lt;br /&gt;
And, in particular this&amp;lt;br&amp;gt;&lt;br /&gt;
The Easiest Way to Succeed as an Entrepreneu&amp;lt;br&amp;gt;&lt;br /&gt;
In my just released book I have more chapters on my experiences as an entrepreneur&amp;lt;br&amp;gt;&lt;br /&gt;
13. I advocate the concept of working at a job while building your business. You have of course lived it. Now as you look back, what is your take on this? Is it possible to make it work while sailing on two boats&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Your boss wants everything out of you. He wants you to work 80 hours a week. He wants to look good taking credit for your work. He wants your infinite loyalty. So you need something back&amp;lt;br&amp;gt;&lt;br /&gt;
Exploit your employer. It&#039;s the best way to get good experience, clients, contacts. It&#039;s a legal way to steal. It&#039;s a fast way to be an entrepreneur because you see what large companies with infinite money are willing to pay for. If you can provide that, you make millions. It&#039;s how many great businesses have started and will always start. It&#039;s how every exit I&#039;ve had started&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
14. Who is a &amp;quot;person with true moral fiber&amp;quot;? In current times are there any role models who are people with true moral fiber&amp;lt;br&amp;gt;&lt;br /&gt;
I don&#039;t really know the answer. I think I know a few people like that. I hope I&#039;m someone like that. And I pray to god the people I&#039;m invested in are like that and my family is like that&amp;lt;br&amp;gt;&lt;br /&gt;
I find most people to be largely mean and stupid, a vile combination. It&#039;s not that I&#039;m pessimistic or cynical. I&#039;m very much an optimist. It&#039;s just reality. Open the newspaper or turn on the TV and watch these people&amp;lt;br&amp;gt;&lt;br /&gt;
Moral fiber atrophies more quickly than any muscle on the body. An exercise I do every morning is to promise myself that &amp;quot;I&#039;m going to save a life today&amp;quot; and then leave it in the hands of the Universe to direct me how I can best do that. Through that little exercise plus the Daily Practice described above I hope to keep regenerating that fiber&amp;lt;br&amp;gt;&lt;br /&gt;
15.   Your message to the readers of this blog&amp;lt;br&amp;gt;&lt;br /&gt;
Skip dinner. But follow me on Twitter.&amp;lt;br&amp;gt;&lt;br /&gt;
Read more posts on The Altucher Confidential �&lt;br /&gt;
More from The Altucher Confidentia&amp;lt;br&amp;gt;&lt;br /&gt;
Life is Like a Game. Here�s How You Master ANY Gam&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Step By Step Guide to Make $10 Million And Then Totally Blow &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Can You Do One Page a Day?&lt;/div&gt;</summary>
		<author><name>165.91.4.34</name></author>
	</entry>
</feed>