Why is lapackEig with c10:complex<float> parameter generated as LOCAL FUNC while lapackEig with float parameter is generated as GLOBAL FUNC

Huiyan: <aside class="onebox githubblob" data-onebox-src="https://github.com/pytorch/pytorch/blob/main/aten/src/ATen/native/BatchLinearAlgebra.cpp#L1004">
  <header class="source">

      <a href="https://github.com/pytorch/pytorch/blob/main/aten/src/ATen/native/BatchLinearAlgebra.cpp#L1004" target="_blank" rel="noopener nofollow ugc">github.com/pytorch/pytorch</a>
  </header>

  <article class="onebox-body">
    <h4><a href="https://github.com/pytorch/pytorch/blob/main/aten/src/ATen/native/BatchLinearAlgebra.cpp#L1004" target="_blank" rel="noopener nofollow ugc">aten/src/ATen/native/BatchLinearAlgebra.cpp</a></h4>

<div class="git-blob-info">
  <a href="https://github.com/pytorch/pytorch/blob/main/aten/src/ATen/native/BatchLinearAlgebra.cpp#L1004" rel="noopener nofollow ugc"><code>main</code></a>
</div>



    <pre class="onebox"><code class="lang-cpp">
      <ol class="start lines" start="994" style="counter-reset: li-counter 993 ;">
          <li></li>
          <li>template&lt;&gt; void lapackEig&lt;float&gt;(char jobvl, char jobvr, int n, float *a, int lda, float *w, float* vl, int ldvl, float *vr, int ldvr, float *work, int lwork, float *rwork, int *info) {</li>
          <li>  // lapack [sd]geev wants to separate output arrays: wr and wi for the real</li>
          <li>  // and imaginary parts</li>
          <li>  float *wr = w;</li>
          <li>  float *wi = w ? w  + n : nullptr;</li>
          <li>  (void)rwork; // unused</li>
          <li>  sgeev_(&amp;jobvl, &amp;jobvr, &amp;n, a, &amp;lda, wr, wi, vl, &amp;ldvl, vr, &amp;ldvr, work, &amp;lwork, info);</li>
          <li>}</li>
          <li></li>
          <li class="selected">template&lt;&gt; void lapackEig&lt;c10::complex&lt;double&gt;, double&gt;(char jobvl, char jobvr, int n, c10::complex&lt;double&gt; *a, int lda, c10::complex&lt;double&gt; *w, c10::complex&lt;double&gt; *vl, int ldvl, c10::complex&lt;double&gt; *vr, int ldvr, c10::complex&lt;double&gt; *work, int lwork, double *rwork, int *info) {</li>
          <li>  zgeev_(&amp;jobvl, &amp;jobvr, &amp;n,</li>
          <li>         reinterpret_cast&lt;std::complex&lt;double&gt;*&gt;(a), &amp;lda,</li>
          <li>         reinterpret_cast&lt;std::complex&lt;double&gt;*&gt;(w),</li>
          <li>         reinterpret_cast&lt;std::complex&lt;double&gt;*&gt;(vl), &amp;ldvl,</li>
          <li>         reinterpret_cast&lt;std::complex&lt;double&gt;*&gt;(vr), &amp;ldvr,</li>
          <li>         reinterpret_cast&lt;std::complex&lt;double&gt;*&gt;(work), &amp;lwork,</li>
          <li>         rwork, info);</li>
          <li>}</li>
          <li></li>
          <li>template&lt;&gt; void lapackEig&lt;c10::complex&lt;float&gt;, float&gt;(char jobvl, char jobvr, int n, c10::complex&lt;float&gt; *a, int lda, c10::complex&lt;float&gt; *w, c10::complex&lt;float&gt; *vl, int ldvl, c10::complex&lt;float&gt; *vr, int ldvr, c10::complex&lt;float&gt; *work, int lwork, float *rwork, int *info) {</li>
      </ol>
    </code></pre>



  </article>

  <div class="onebox-metadata">
    
    
  </div>

  <div style="clear: both"></div>
</aside>

<p><div class="lightbox-wrapper"><a class="lightbox" href="https://discuss.pytorch.org/uploads/default/original/3X/1/5/15be08ccaef82c718d7f6a411bf3f4dc5d94b757.png" data-download-href="https://discuss.pytorch.org/uploads/default/15be08ccaef82c718d7f6a411bf3f4dc5d94b757" title="image"><img src="https://discuss.pytorch.org/uploads/default/original/3X/1/5/15be08ccaef82c718d7f6a411bf3f4dc5d94b757.png" alt="image" data-base62-sha1="36laLuMkxMCgAbYA0Ny3I2ffINh" width="690" height="119" data-dominant-color="383737"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">image</span><span class="informations">1599×277 17.7 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div></p>