<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://en.formulasearchengine.com/index.php?action=history&amp;feed=atom&amp;title=Indifference_price</id>
	<title>Indifference price - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://en.formulasearchengine.com/index.php?action=history&amp;feed=atom&amp;title=Indifference_price"/>
	<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/index.php?title=Indifference_price&amp;action=history"/>
	<updated>2026-04-24T21:26:22Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.0-wmf.28</generator>
	<entry>
		<id>https://en.formulasearchengine.com/index.php?title=Indifference_price&amp;diff=27027&amp;oldid=prev</id>
		<title>en&gt;Zfeinst: no longer stub</title>
		<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/index.php?title=Indifference_price&amp;diff=27027&amp;oldid=prev"/>
		<updated>2012-08-29T12:19:56Z</updated>

		<summary type="html">&lt;p&gt;no longer stub&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;The &amp;#039;&amp;#039;&amp;#039;Forney algorithm&amp;#039;&amp;#039;&amp;#039; (or &amp;#039;&amp;#039;&amp;#039;Forney&amp;#039;s algorithm&amp;#039;&amp;#039;&amp;#039;) calculates the error values at known error locations.  It is used as one of the steps in decoding [[BCH code]]s and [[Reed&amp;amp;ndash;Solomon error correction|Reed&amp;amp;ndash;Solomon codes]] (a subclass of BCH codes).  [[Dave Forney|George David Forney, Jr.]] developed the algorithm.&amp;lt;ref&amp;gt;{{Harvnb|Forney|1965}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Procedure==&lt;br /&gt;
:&amp;#039;&amp;#039;Need to introduce terminology and the setup...&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Code words look like polynomials. By design, the generator polynomial has consecutive roots &amp;amp;alpha;&amp;lt;sup&amp;gt;c&amp;lt;/sup&amp;gt;, &amp;amp;alpha;&amp;lt;sup&amp;gt;&amp;#039;&amp;#039;c&amp;#039;&amp;#039;+1&amp;lt;/sup&amp;gt;, ..., &amp;amp;alpha;&amp;lt;sup&amp;gt;&amp;#039;&amp;#039;c&amp;#039;&amp;#039;+&amp;#039;&amp;#039;d&amp;#039;&amp;#039;&amp;amp;minus;2&amp;lt;/sup&amp;gt;.&amp;lt;!-- for RS, c = 1 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Syndromes&lt;br /&gt;
&lt;br /&gt;
Error location polynomial&amp;lt;ref&amp;gt;{{Harvnb|Gill|unknown|p=24}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\Lambda(x) = \prod_{i=1}^\nu (1- x \, X_i) = 1 + \sum_{i=1}^\nu \lambda_i \, x^i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The zeros of &amp;amp;Lambda;(&amp;#039;&amp;#039;x&amp;#039;&amp;#039;) are &amp;#039;&amp;#039;X&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;&amp;amp;minus;1&amp;lt;/sup&amp;gt;, ..., &amp;#039;&amp;#039;X&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;&amp;#039;&amp;#039;&amp;amp;nu;&amp;#039;&amp;#039;&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;&amp;amp;minus;1&amp;lt;/sup&amp;gt;. The zeros are the reciprocals of the error locations &amp;lt;math&amp;gt;X_j = \alpha^{i_j}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Once the error locations are known, the next step is to determine the error values at those locations. The error values are then used to correct the received values at those locations to recover the original codeword.&lt;br /&gt;
&lt;br /&gt;
In the more general case, the error weights &amp;lt;math&amp;gt;e_j&amp;lt;/math&amp;gt; can be determined by solving the linear system&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;s_0 = e_1 \alpha^{(c + 0)\,i_1} + e_2 \alpha^{(c + 0)\,i_2} + \cdots \, &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;s_1 = e_1 \alpha^{(c + 1)\,i_1} + e_2 \alpha^{(c + 1)\,i_2} + \cdots \, &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; \cdots \, &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, there is a more efficient method known as the Forney algorithm, which is based on [[Lagrange polynomial|Lagrange interpolation]]. First calculate the error evaluator polynomial&amp;lt;ref name=&amp;quot;Gill-Forney&amp;quot;&amp;gt;{{Harvnb|Gill|unknown|p=47}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\Omega(x) = S(x)\,\Lambda(x) \pmod{x^{2t}} \, &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- previous used small omega; mod was x^(d-1); Gill uses 2t. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;#039;&amp;#039;S&amp;#039;&amp;#039;(&amp;#039;&amp;#039;x&amp;#039;&amp;#039;) is the partial syndrome polynomial:&amp;lt;ref&amp;gt;{{Harvtxt|Gill|unknown|p=48}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;S(x) = s_0 x^0 + s_1 x^1 + s_2 x^2 + \cdots + s_{2t-1} x^{2t-1}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then evaluate the error values:&amp;lt;ref name=&amp;quot;Gill-Forney&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;!-- Gill uses b where c is used above --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;e_j = - \frac{X_j^{1-c} \, \Omega(X_j^{-1})}{\Lambda&amp;#039;(X_j^{-1})} \, &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- minus often left out because no effect in common fields. Formal derivative in some fields has drastic simplification. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some codes select &amp;#039;&amp;#039;c&amp;#039;&amp;#039; = 1, so the expression simplifies to:&lt;br /&gt;
:&amp;lt;math&amp;gt;e_j = - \frac{\Omega(X_j^{-1})}{\Lambda&amp;#039;(X_j^{-1})}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Formal derivative==&lt;br /&gt;
{{Main|Formal derivative}}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;Lambda;&amp;#039;(&amp;#039;&amp;#039;x&amp;#039;&amp;#039;) is the [[formal derivative]] of the error locator polynomial &amp;amp;Lambda;(&amp;#039;&amp;#039;x&amp;#039;&amp;#039;):&amp;lt;ref name=&amp;quot;Gill-Forney&amp;quot;/&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;\Lambda&amp;#039;(x) = \sum_{i=1}^{\nu} i \, \cdot \, \lambda_i \, x^{i-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- nu is number of errors / order of Lambda(x). Better exposition needed. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the above expression, note that &amp;#039;&amp;#039;i&amp;#039;&amp;#039; is an integer, and &amp;amp;lambda;&amp;lt;sub&amp;gt;&amp;#039;&amp;#039;i&amp;#039;&amp;#039;&amp;lt;/sub&amp;gt; would be an element of the finite field. The operator &amp;amp;middot; represents ordinary multiplication (repeated addition in the finite field) and not the finite field&amp;#039;s multiplication operator.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- discuss simplification. When addition is exclusive or (common case), only odd &amp;#039;&amp;#039;i&amp;#039;&amp;#039; are relevant. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Derivation==&lt;br /&gt;
[[Lagrange interpolation]]&lt;br /&gt;
&lt;br /&gt;
{{Harvtxt|Gill|unknown|pp=52&amp;amp;ndash;54}} gives a derivation of the Forney algorithm.&lt;br /&gt;
&lt;br /&gt;
==Erasures==&lt;br /&gt;
Define the erasure locator polynomial&lt;br /&gt;
:&amp;lt;math&amp;gt;\Gamma(x) = \prod (1- x \, \alpha^{j_i})&amp;lt;/math&amp;gt;&lt;br /&gt;
Where the erasure locations are given by &amp;#039;&amp;#039;j&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&amp;#039;&amp;#039;. Apply the procedure described above, substituting &amp;amp;Gamma; for &amp;amp;Lambda;.&lt;br /&gt;
&lt;br /&gt;
If both errors and erasures are present, use the error-and-erasure locator polynomial&lt;br /&gt;
:&amp;lt;math&amp;gt;\Psi(x) = \Lambda(x) \, \Gamma(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*[[BCH code]]&lt;br /&gt;
*[[Reed&amp;amp;ndash;Solomon error correction]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
{{reflist|30em}}&lt;br /&gt;
*{{Citation&lt;br /&gt;
 |first= G.&lt;br /&gt;
 |last= Forney, Jr.&lt;br /&gt;
 |authorlink=Dave Forney&lt;br /&gt;
 |title= On Decoding BCH Codes&lt;br /&gt;
 |journal= [[IEEE Transactions on Information Theory]]&lt;br /&gt;
 |volume= 11&lt;br /&gt;
 |issue= 4&lt;br /&gt;
 |date= October 1965&lt;br /&gt;
 |pages= 549–557&lt;br /&gt;
 |issn= 0018-9448&lt;br /&gt;
 |doi= 10.1109/TIT.1965.1053825}}&lt;br /&gt;
*{{Citation&lt;br /&gt;
 |last=Gill&lt;br /&gt;
 |first= John&lt;br /&gt;
 |title= EE387 Notes #7, Handout #28&lt;br /&gt;
 |year= unknown&lt;br /&gt;
 |accessdate= April 21, 2010&lt;br /&gt;
 |pages=42&amp;amp;ndash;45&lt;br /&gt;
 |publisher= Stanford University&lt;br /&gt;
 |url= http://www.stanford.edu/class/ee387/handouts/notes7.pdf&lt;br /&gt;
 |doi=}}&lt;br /&gt;
* [[W. Wesley Peterson]]&amp;#039;s book&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Forney algorithm}}&lt;br /&gt;
[[Category:Error detection and correction]]&lt;br /&gt;
[[Category:Coding theory]]&lt;/div&gt;</summary>
		<author><name>en&gt;Zfeinst</name></author>
	</entry>
</feed>