<?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=75.105.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=75.105.0.0%2F16"/>
	<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/wiki/Special:Contributions/75.105.0.0/16"/>
	<updated>2026-07-09T11:34:57Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.47.0-wmf.7</generator>
	<entry>
		<id>https://en.formulasearchengine.com/w/index.php?title=Log-polar_coordinates&amp;diff=25741</id>
		<title>Log-polar coordinates</title>
		<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/w/index.php?title=Log-polar_coordinates&amp;diff=25741"/>
		<updated>2013-12-28T15:12:26Z</updated>

		<summary type="html">&lt;p&gt;75.105.1.121: /* Discrete geometry */  tried to remove the word you every time it was used&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In mathematics, a &#039;&#039;&#039;rigid transformation&#039;&#039;&#039; ([[isometry]]) of a vector space preserves distances between every pair of points.&amp;lt;ref name= Bottema&amp;gt;&lt;br /&gt;
{{cite book |title=Theoretical Kinematics |page=reface |url=http://books.google.com/books?id=f8I4yGVi9ocC&amp;amp;printsec=frontcover&amp;amp;dq=kinematics&amp;amp;lr=&amp;amp;as_brr=0&amp;amp;sig=YfoHn9ImufIzAEp5Kl7rEmtYBKc#PPR7,M1  |author=O. Bottema &amp;amp; B. Roth |isbn=0-486-66346-9 |publisher=Dover Publications |year=1990 |nopp=true}}&lt;br /&gt;
&amp;lt;/ref&amp;gt; &amp;lt;ref name= McCarthy&amp;gt;&lt;br /&gt;
{{cite book |title=Introduction to Theoretical Kinematics |page=reface |url=http://www.amazon.com/Introduction-Theoretical-Kinematics-J-McCarthy/dp/0262132524  |author=J. M. McCarthy |isbn=0262132524 |publisher=MIT Press |year=1990 |nopp=true}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;  Rigid transformations of the plane R&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;, space R&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;, or real n-dimensional space R&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt; are termed a &#039;&#039;&#039;Euclidean transformation&#039;&#039;&#039; because they form the basis of Euclidean geometry.&amp;lt;ref&amp;gt;{{citation|title=Introduction to classical geometries|first1=Ana Irene Ramírez|last1=Galarza|first2=José|last2=Seade|publisher=Birkhauser|year=2007}}.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &lt;br /&gt;
Rigid transformations include [[rotation (mathematics)|rotations]], [[translation (mathematics)|translations]], [[reflection (mathematics)|reflections]], or their combination.  Sometimes reflections are excluded from the definition of a rigid transformation by imposing that the transformation also preserve the [[orientation (mathematics)|handedness]] of figures in the Euclidean space (a reflection would not preserve handedness; for instance, it would transform a left hand into a right hand).  To avoid ambiguity, this smaller class of transformations is known as &#039;&#039;&#039;proper rigid transformations&#039;&#039;&#039; (informally, also known as &#039;&#039;&#039;roto-translations&#039;&#039;&#039;).  In general, any proper rigid transformation can be decomposed as a rotation followed by a translation, while any rigid transformation can be decomposed as an [[improper rotation]] followed by a translation (or as a sequence of reflections). &lt;br /&gt;
&lt;br /&gt;
Any object will keep the same [[shape]] and size after a proper rigid transformation, but not after an improper one.&lt;br /&gt;
&lt;br /&gt;
All rigid transformations are [[affine transformations]]. Rigid transformations which involve a translation are not [[linear transformation]]s.  Not all transformations are rigid transformations.  An example is a [[shear (mathematics)|shear]], which changes two axes in different ways, or a [[similarity transformation (geometry)|similarity transformation]], which preserves angles but not lengths. The set of all (proper and improper) rigid transformations is a [[group (mathematics)|group]] called the [[Euclidean group]], denoted E(&#039;&#039;n&#039;&#039;) for &#039;&#039;n&#039;&#039;-dimensional Euclidean spaces). The set of proper rigid transformation is called special Euclidean group, denoted SE(&#039;&#039;n&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
In [[mechanics]], proper rigid transformations in a 3-dimensional Euclidean space, denoted SE(3), are used to represent the [[Displacement (vector)|linear]] and [[angular displacement]] of [[Rigid body|rigid bodies]].&lt;br /&gt;
&lt;br /&gt;
==Distance formula==&lt;br /&gt;
A measure of distance between points, or [[metrics space|metric]], is needed in order to evaluate if a transformation is rigid.  The Euclidean distance formula for R&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt; is the generalization of the Pythagorean theorem.  This says the distance squared between two points &#039;&#039;&#039;X&#039;&#039;&#039; and &#039;&#039;&#039;Y&#039;&#039;&#039; is the sum of the squares of the distances along the coordinate axes, that is&lt;br /&gt;
:&amp;lt;math&amp;gt; d(\mathbf{X},\mathbf{Y})^2 = (X_1-Y_1)^2 + (X_2-Y_2)^2 + \ldots + (X_n-Y_n)^2 = (\mathbf{X}-\mathbf{Y})\cdot(\mathbf{X}-\mathbf{Y}). &amp;lt;/math&amp;gt;&lt;br /&gt;
where &#039;&#039;&#039;X&#039;&#039;&#039;=(X&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;, X&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;, ..., X&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;) and &#039;&#039;&#039;Y&#039;&#039;&#039;=(Y&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;, Y&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;, ..., Y&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;), and the dot denotes the [[scalar product]].&lt;br /&gt;
&lt;br /&gt;
Using this distance formula, a rigid transformation &#039;&#039;g&#039;&#039;:R&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;→R&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt; has the property,&lt;br /&gt;
:&amp;lt;math&amp;gt;d(g(\mathbf{X}), g(\mathbf{Y}))^2 = d(\mathbf{X}, \mathbf{Y})^2.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Translations and Linear Transformations==&lt;br /&gt;
A [[translation (geometry)|translation]] of a vector space adds a vector &#039;&#039;&#039;d&#039;&#039;&#039; to every vector in the space, which means it is the transformation &#039;&#039;g&#039;&#039;(&#039;&#039;&#039;v&#039;&#039;&#039;):&#039;&#039;&#039;v&#039;&#039;&#039;→&#039;&#039;&#039;v&#039;&#039;&#039;+&#039;&#039;&#039;d&#039;&#039;&#039;.  It is easy to show that this is a rigid transformation by computing,&lt;br /&gt;
:&amp;lt;math&amp;gt;d(\mathbf{v}+\mathbf{d},\mathbf{w}+\mathbf{d})^2 = (\mathbf{v}+\mathbf{d} - \mathbf{w}-\mathbf{d})\cdot(\mathbf{v}+\mathbf{d} - \mathbf{w} -\mathbf{d})=(\mathbf{v} - \mathbf{w})\cdot(\mathbf{v}- \mathbf{w}) = d(\mathbf{v},\mathbf{w})^2.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A linear transformation of a vector space, &#039;&#039;L&#039;&#039;:R&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;→ R&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;, has the property that the transformation of a vector, &#039;&#039;&#039;V&#039;&#039;&#039;=a&#039;&#039;&#039;v&#039;&#039;&#039;+b&#039;&#039;&#039;w&#039;&#039;&#039;, is the sum of the transformations of its components, that is,&lt;br /&gt;
:&amp;lt;math&amp;gt; L(\mathbf{V})=L(a\mathbf{v}+b\mathbf{w})=aL(\mathbf{v})+bL(\mathbf{w}).&amp;lt;/math&amp;gt;&lt;br /&gt;
Each linear transformation &#039;&#039;L&#039;&#039; can be formulated as a matrix operation, which means &#039;&#039;L&#039;&#039;:&#039;&#039;&#039;v&#039;&#039;&#039;→[L]&#039;&#039;&#039;v&#039;&#039;&#039;, where [L] is an nxn matrix.&lt;br /&gt;
&lt;br /&gt;
A linear transformation is a rigid transformation if it satisfies the condition,&lt;br /&gt;
:&amp;lt;math&amp;gt;d([L]\mathbf{v}, [L]\mathbf{w})^2 = d(\mathbf{v},\mathbf{w})^2,&amp;lt;/math&amp;gt;&lt;br /&gt;
that is&lt;br /&gt;
:&amp;lt;math&amp;gt;d([L]\mathbf{v}, [L]\mathbf{w})^2=([L]\mathbf{v}-[L]\mathbf{w})\cdot([L]\mathbf{v}-[L]\mathbf{w})=([L](\mathbf{v}-\mathbf{w}))\cdot([L](\mathbf{v}-\mathbf{w})).&amp;lt;/math&amp;gt;&lt;br /&gt;
Now use the fact that the scalar product of two vectors &#039;&#039;&#039;v&#039;&#039;&#039;.&#039;&#039;&#039;w&#039;&#039;&#039; can be written as the matrix operation &#039;&#039;&#039;v&#039;&#039;&#039;&amp;lt;sup&amp;gt;T&amp;lt;/sup&amp;gt;&#039;&#039;&#039;w&#039;&#039;&#039;, where the T denotes the matrix transpose, we have&lt;br /&gt;
:&amp;lt;math&amp;gt;d([L]\mathbf{v}, [L]\mathbf{w})^2 = (\mathbf{v}-\mathbf{w})^T[L]^T[L](\mathbf{v}-\mathbf{w}).&amp;lt;/math&amp;gt;&lt;br /&gt;
Thus, the linear transformation &#039;&#039;L&#039;&#039; is rigid if its matrix satisfies the condition&lt;br /&gt;
:&amp;lt;math&amp;gt;[L]^T[L]=[I], &amp;lt;/math&amp;gt;&lt;br /&gt;
where [I] is the identity matrix.  Matrices that satisfy this condition are called &#039;&#039;orthogonal matrices.&#039;&#039;  This condition actually requires the columns of these matrices to be orthogonal unit vectors.  &lt;br /&gt;
&lt;br /&gt;
Matrices that satisfy this condition form a mathematical [[group (mathematics)|group]] under the operation of matrix multiplication called the &#039;&#039;orthogonal group of nxn matrices&#039;&#039; and denoted &#039;&#039;O(n)&#039;&#039;.  &lt;br /&gt;
&lt;br /&gt;
Compute the determinant of the condition for an [[orthogonal matrix]] to obtain&lt;br /&gt;
:&amp;lt;math&amp;gt; \det([L]^T[L]) =\det[L]^2 =\det[I] =1,&amp;lt;/math&amp;gt;&lt;br /&gt;
which shows that the matrix [L] can have a determinant of either +1 or -1.  Orthogonal matrices with determinant -1 are reflections, and those with determinant +1 are rotations.  Notice that the set of orthogonal matrices can be viewed as consisting of two manifolds in R&amp;lt;sup&amp;gt;nxn&amp;lt;/sup&amp;gt; separated by the set of singular matrices.&lt;br /&gt;
&lt;br /&gt;
The set of rotation matrices is called the &#039;&#039;special orthogonal group,&#039;&#039; and denoted &#039;&#039;SO(n).&#039;&#039;  It is an example of a [[Lie group]] because it has the structure of a manifold.&lt;br /&gt;
&lt;br /&gt;
== Formal definition ==&lt;br /&gt;
&lt;br /&gt;
A rigid transformation is formally defined as a transformation that, when acting on any vector &#039;&#039;&#039;v&#039;&#039;&#039;, produces a transformed vector &#039;&#039;T&#039;&#039;(&#039;&#039;&#039;v&#039;&#039;&#039;) of the form&lt;br /&gt;
:&#039;&#039;T&#039;&#039;(&#039;&#039;&#039;v&#039;&#039;&#039;) = &#039;&#039;R&#039;&#039; &#039;&#039;&#039;v&#039;&#039;&#039; + &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
where &#039;&#039;R&#039;&#039;&amp;lt;sup&amp;gt;T&amp;lt;/sup&amp;gt; = &#039;&#039;R&#039;&#039;&amp;lt;sup&amp;gt;&amp;amp;minus;1&amp;lt;/sup&amp;gt; (i.e., &#039;&#039;R&#039;&#039; is an [[orthogonal transformation]]), and &#039;&#039;&#039;t&#039;&#039;&#039; is a vector giving the translation of the origin.&lt;br /&gt;
&lt;br /&gt;
A proper rigid transformation has, in addition,&lt;br /&gt;
&lt;br /&gt;
: [[determinant|det]](R) = 1&lt;br /&gt;
&lt;br /&gt;
which means that &#039;&#039;R&#039;&#039; does not produce a reflection, and hence it represents a [[rotation (mathematics)|rotation]] (an orientation-preserving orthogonal transformation). Indeed, when an orthogonal transformation matrix produces a reflection, its determinant is -1.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
{{Reflist}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Functions and mappings]]&lt;/div&gt;</summary>
		<author><name>75.105.1.121</name></author>
	</entry>
	<entry>
		<id>https://en.formulasearchengine.com/w/index.php?title=Word_wrap&amp;diff=10538</id>
		<title>Word wrap</title>
		<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/w/index.php?title=Word_wrap&amp;diff=10538"/>
		<updated>2013-12-08T03:36:38Z</updated>

		<summary type="html">&lt;p&gt;75.105.16.82: /* Word wrapping in text containing Chinese, Japanese, and Korean */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Algorithm&lt;br /&gt;
|class=[[Sorting algorithm]]&lt;br /&gt;
|image=&lt;br /&gt;
|data=[[Array data structure|Array]]&lt;br /&gt;
|time=&amp;lt;math&amp;gt;O(n^2)&amp;lt;/math&amp;gt;&lt;br /&gt;
|best-time=&amp;lt;math&amp;gt;O(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
|average-time=&amp;lt;math&amp;gt;O(n\log n)&amp;lt;/math&amp;gt;&lt;br /&gt;
|space=&amp;lt;math&amp;gt;O(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
|optimal=?&lt;br /&gt;
}}&lt;br /&gt;
&#039;&#039;&#039;Library sort&#039;&#039;&#039;, or &#039;&#039;&#039;gapped insertion sort&#039;&#039;&#039; is a [[sorting algorithm]] that uses an [[insertion sort]], but with gaps in the array to accelerate subsequent insertions. The name comes from an analogy:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Suppose a librarian were to store his books alphabetically on a long shelf, starting with the A&#039;s at the left end, and continuing to the right along the shelf with no spaces between the books until the end of the Z&#039;s. If the librarian acquired a new book that belongs to the B section, once he finds the correct space in the B section, he will have to move every book over, from the middle of the B&#039;s all the way down to the Z&#039;s in order to make room for the new book. This is an insertion sort. However, if he were to leave a space after every letter, as long as there was still space after B, he would only have to move a few books to make room for the new one. This is the basic principle of the Library Sort.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The algorithm was proposed by [[Michael A. Bender]], [[Martín Farach-Colton]], and [[Miguel Mosteiro]] in 2004&amp;lt;ref&amp;gt;http://arxiv.org/abs/cs/0407003&amp;lt;/ref&amp;gt; and published 2006.&amp;lt;ref name=&amp;quot;definition&amp;quot;&amp;gt;&lt;br /&gt;
{{cite journal | journal=Theory of Computing Systems | volume=39 | issue=3 | pages=391 | year=2006  | author=Bender, M. A.,  Farach-Colton, M., and Mosteiro M. | title=Insertion Sort is O(n log n) | doi = 10.1007/s00224-005-1237-z }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Like the insertion sort it is based on, library sort is a [[stable sort|stable]] [[comparison sort]] and can be run as an [[online algorithm]]; however, it was shown to have a high probability of running in O(n log n) time (comparable to [[quicksort]]), rather than an insertion sort&#039;s O(n&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;). The mechanism used for this improvement is very similar to that of a [[skip list]]. There is no full implementation given in the paper, nor the exact algorithms of important parts, such as insertion and rebalancing. Further information would be needed to discuss how the library sort efficiency compares to other sorting methods in reality.&lt;br /&gt;
&lt;br /&gt;
Compared to basic insertion sort, the drawback of library sort is that it requires extra space for the gaps. The amount and distribution of that space would be implementation dependent. In the paper the size of the needed array is &#039;&#039;(1 + ε)n&#039;&#039;,&amp;lt;ref name=&amp;quot;definition&amp;quot; /&amp;gt; but with no further recommendations on how to choose ε. One weakness of [[insertion sort]] is that it may require a high number of swap operations and be costly if memory write is expensive. Library sort may improve that somewhat in the insertion step, as fewer elements need to move to make room, but is also adding an extra cost in the rebalancing step.&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
&lt;br /&gt;
===Algorithm ===&lt;br /&gt;
Let us say we have an array of n elements. We choose the gap we intend to&lt;br /&gt;
give. Then we would have a final array of size (1 + ε)n. The algorithm works&lt;br /&gt;
in log n rounds. In each round we insert as many elements as there are in&lt;br /&gt;
the final array already, before re-balancing the array. For finding the position&lt;br /&gt;
of inserting, we apply Binary Search in the final array and then swap the&lt;br /&gt;
following elements till we hit an empty space. Once the round is over, we&lt;br /&gt;
re-balance the final array by inserting spaces between each element.&lt;br /&gt;
&lt;br /&gt;
Following are three important steps of the algorithm:&lt;br /&gt;
&lt;br /&gt;
1. Binary Search:&lt;br /&gt;
Finding the position of insertion by applying binary search within the&lt;br /&gt;
already inserted elements. This can be done by linearly moving towards&lt;br /&gt;
left or right side of the array if you hit an empty space in the middle&lt;br /&gt;
element.&lt;br /&gt;
&lt;br /&gt;
2. Insertion:&lt;br /&gt;
Inserting the element in the position found and swapping the following&lt;br /&gt;
elements by 1 position till an empty space is hit.&lt;br /&gt;
&lt;br /&gt;
3. Re-Balancing:&lt;br /&gt;
Inserting spaces between each pair of elements in the array. This takes linear time, and&lt;br /&gt;
because there are log n rounds in the algorithm, total re-balancing takes&lt;br /&gt;
O(n log n) time only.&lt;br /&gt;
&lt;br /&gt;
===Pseudocode===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;proc&#039;&#039;&#039; rebalance(A, begin, end)&lt;br /&gt;
     r ← end&lt;br /&gt;
     w ← end * 2&lt;br /&gt;
     &#039;&#039;&#039;while&#039;&#039;&#039; r &amp;gt;= begin&lt;br /&gt;
         A[w+1] ← gap&lt;br /&gt;
         A[w] ← A[r]&lt;br /&gt;
         r ← r - 1&lt;br /&gt;
         w ← w - 2&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;proc&#039;&#039;&#039; sort(A)&lt;br /&gt;
     n ← length(A)&lt;br /&gt;
     S ← new array of n gaps&lt;br /&gt;
     &#039;&#039;&#039;for&#039;&#039;&#039; i ← 1 to floor(log2(n) + 1)&lt;br /&gt;
         &#039;&#039;&#039;for&#039;&#039;&#039; j ← 2^i to 2^(i+1)&lt;br /&gt;
             ins ← binarysearch(S, 2^(i-1))&lt;br /&gt;
             insert A[j] at S[ins]&lt;br /&gt;
&lt;br /&gt;
Here, &amp;lt;code&amp;gt;binarysearch(A, k)&amp;lt;/code&amp;gt; performs [[binary search]] in the first {{mvar|k}} elements of {{mvar|A}}, skipping over gaps. Insertion should favor gaps over filled-in elements.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
{{reflist}}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
*[http://www.cs.sunysb.edu/~bender/newpub/BenderFaMo06-librarysort.pdf Gapped Insertion Sort]&lt;br /&gt;
&lt;br /&gt;
{{sorting}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Sorting algorithms]]&lt;br /&gt;
[[Category:Comparison sorts]]&lt;br /&gt;
[[Category:Stable sorts]]&lt;br /&gt;
[[Category:Online sorts]]&lt;/div&gt;</summary>
		<author><name>75.105.16.82</name></author>
	</entry>
</feed>