<p dir="auto">The <code class="notranslate">eigen</code> / <code class="notranslate">eigen!</code> functions of the <code class="notranslate">LinearAlgebra</code> package fail with the <code class="notranslate">Adjoint</code> and <code class="notranslate">Transposed</code> types.</p>
<p dir="auto">Given a square matrix <code class="notranslate">A</code> (e.g. a <code class="notranslate">10×10 Array{Float64,2}</code>), both the following statements fail:<br>
<code class="notranslate">E = eigen(A')</code><br>
<code class="notranslate">E = eigen(transpose(A))</code><br>
with errors<br>
<code class="notranslate">ERROR: MethodError: no method matching eigen(::Adjoint{Float64,Array{Float64,2}})</code><br>
and<br>
<code class="notranslate">ERROR: MethodError: no method matching eigen(::Transpose{Float64,Array{Float64,2}})</code><br>
respectively.</p>
<p dir="auto">A simple fix could be to define the method<br>
<code class="notranslate">LinearAlgebra.eigen(x::Union{Transpose{T, A}, Adjoint{T, A}}) where {T, A&lt;:AbstractMatrix} = eigen(copy(x))</code> (credit: Twan Koolen on discourse).</p>
<p dir="auto">However, it could be more efficient to use LAPACK functions directly computing left eigenvectors (i.e. eigenvectors of the transposed) without making another copy of the matrix. It looks like the wrapper <code class="notranslate">LinearAlgebra.LAPACK.geevx!</code> has such a feature. In <code class="notranslate">eigen.jl</code>, the lower level LAPACK call (line 40 as of tag <code class="notranslate">v1.0.0</code>) is<br>
<code class="notranslate">A, WR, WI, VL, VR, _ = LAPACK.geevx!(permute ? (scale ? 'B' : 'P') : (scale ? 'S' : 'N'), 'N', 'V', 'N', A)</code><br>
According to the <a href="https://docs.julialang.org/en/v1.0.0/stdlib/LinearAlgebra/#LinearAlgebra.LAPACK.geevx!" rel="nofollow">documentation</a>,<br>
<code class="notranslate">A, WR, WI, VL, VR, _ = LAPACK.geevx!(permute ? (scale ? 'B' : 'P') : (scale ? 'S' : 'N'), 'V', 'N', 'N', A)</code><br>
should compute left eigenvectors instead.</p>
<p dir="auto">I am very new to Julia (I have been mostly a Matlab programmer so far), so I am not quite sure what is a clean way to insert such a fix into <code class="notranslate">eigen.jl</code>. At least, duplicating the <code class="notranslate">eigen!</code> code in <code class="notranslate">eigen.jl</code> does not seem to be a very good idea. Also, adding this may not cover all <code class="notranslate">eigen</code> methods for special matrices. (The <code class="notranslate">eigen!</code> method in <code class="notranslate">eigen.jl</code> applies to <code class="notranslate">StridedMatrix{T}</code>, which I assume excludes at least sparse matrices.)</p>
<p dir="auto">Note: this issue is similar to Issue <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="323934505" data-permission-text="Title is private" data-url="https://github.com/JuliaLang/julia/issues/27132" data-hovercard-type="issue" data-hovercard-url="/JuliaLang/julia/issues/27132/hovercard" href="https://github.com/JuliaLang/julia/issues/27132">#27132</a> regarding <code class="notranslate">svdfact</code> (now <code class="notranslate">svd</code>)  which was fixed in PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="337857438" data-permission-text="Title is private" data-url="https://github.com/JuliaLang/julia/issues/27916" data-hovercard-type="pull_request" data-hovercard-url="/JuliaLang/julia/pull/27916/hovercard" href="https://github.com/JuliaLang/julia/pull/27916">#27916</a> . The fix for <code class="notranslate">svd</code> will not work here though.</p>
<p dir="auto">I use Julia (official distribution) on macOS.</p>
<p dir="auto">Recently I set Terminal.app to start a non-default shell (see screenshot below). Now double-clicking Julia.app no longer starts Julia correctly. It just opens a terminal window.</p>
<p dir="auto">Julia.app seems to use the following AppleScript to launch julia in a new Terminal.app window:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="set RootPath to POSIX path of (path to me)
tell application id &quot;com.apple.terminal&quot;
	do script (&quot;exec '&quot; &amp; RootPath &amp; &quot;Contents/Resources/julia/bin/julia'&quot;)
	activate
end tell"><pre class="notranslate"><code class="notranslate">set RootPath to POSIX path of (path to me)
tell application id "com.apple.terminal"
	do script ("exec '" &amp; RootPath &amp; "Contents/Resources/julia/bin/julia'")
	activate
end tell
</code></pre></div>
<p dir="auto">It is the <code class="notranslate">do script</code> that seems to not work under these circumstances, but I don't know how to fix it.</p>
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="https://user-images.githubusercontent.com/1212871/59556168-3b1faa80-8fbe-11e9-9d74-fdcce062eb30.png"><img src="https://user-images.githubusercontent.com/1212871/59556168-3b1faa80-8fbe-11e9-9d74-fdcce062eb30.png" alt="image" style="max-width: 100%;"></a></p>