⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ygj.h

📁 [[ Complex Matrices : Language c]]
💻 H
字号:
/* xcpivot.h                   freeware                   xhunga@tiscali.fr  */


/* ------------------------------------- FUNCTION --------------------------  */
/* Do    : On a complexF.                                                     */
/*                                                                            */
/* -------------------------------------------------------------------------- */
complexF jfpivot_zF(
PmzF      m,
int      rowpivot,
int      colpivot,
int      colp,
int      rown_mns
)
{
complexF f;

complexF fn;
complexF fn_mns;

complexF fp;
complexF fpivot;

  fpivot.r.n =  (*(m->pb+rowpivot  *m->cols+colpivot*C4+0));
  fpivot.r.d =  (*(m->pb+rowpivot  *m->cols+colpivot*C4+1));
  fpivot.i.n =  (*(m->pb+rowpivot  *m->cols+colpivot*C4+2));
  fpivot.i.d =  (*(m->pb+rowpivot  *m->cols+colpivot*C4+3));

      fp.r.n =  (*(m->pb+rowpivot  *m->cols+colp*C4+0));
      fp.r.d =  (*(m->pb+rowpivot  *m->cols+colp*C4+1));
      fp.i.n =  (*(m->pb+rowpivot  *m->cols+colp*C4+2));
      fp.i.d =  (*(m->pb+rowpivot  *m->cols+colp*C4+3));

   fn_mns.r.n = -(*(m->pb+rown_mns *m->cols+colpivot*C4+0));
   fn_mns.r.d =  (*(m->pb+rown_mns *m->cols+colpivot*C4+1));
   fn_mns.i.n = -(*(m->pb+rown_mns *m->cols+colpivot*C4+2));
   fn_mns.i.d =  (*(m->pb+rown_mns *m->cols+colpivot*C4+3));

      fn.r.n =  (*(m->pb+rown_mns  *m->cols+colp*C4+0));
      fn.r.d =  (*(m->pb+rown_mns  *m->cols+colp*C4+1));
      fn.i.n =  (*(m->pb+rown_mns  *m->cols+colp*C4+2));
      fn.i.d =  (*(m->pb+rown_mns  *m->cols+colp*C4+3));


if(colpivot != colp)
{
      f = add_zF( mul_zF(fpivot,fn), mul_zF(fp,fn_mns));
}

if(colpivot == colp)
{
 (*(m->pb+rown_mns *m->cols+colpivot*C4+0)) = 0;
 (*(m->pb+rown_mns *m->cols+colpivot*C4+1)) = 1;
 (*(m->pb+rown_mns *m->cols+colpivot*C4+2)) = 0;
 (*(m->pb+rown_mns *m->cols+colpivot*C4+3)) = 1;

 f = add_zF( mul_zF(fpivot,fn), mul_zF(fp,fn_mns));
}

 return(f);
}


/* ------------------------------------- FUNCTION --------------------------  */
/* Do    :  On a row.                                                         */
/*                                                                            */
/* -------------------------------------------------------------------------- */
void jrpivot_mzF(
PmzF  m,
int      rowpivot,
int      colpivot,
int      rown_mns
)
{
     int colp;
complexF f;

    if( (*(m->pb+rowpivot  *m->cols+colpivot*C4+0))
                       ||
        (*(m->pb+rowpivot  *m->cols+colpivot*C4+2)) )
     {
       for(colp = (m->cols/C4)-1 ; colp > -1 ; colp--)
        {
         f = jfpivot_zF(m, rowpivot, colpivot, colp, rown_mns);

         (*(m->pb+rown_mns  *m->cols+colp*C4+0)) = f.r.n;
         (*(m->pb+rown_mns  *m->cols+colp*C4+1)) = f.r.d;
         (*(m->pb+rown_mns  *m->cols+colp*C4+2)) = f.i.n;
         (*(m->pb+rown_mns  *m->cols+colp*C4+3)) = f.i.d;
        }
     }
}

/* ------------------------------------- FUNCTION --------------------------  */
/* Do    :  On a row.                                                         */
/*                                                                            */
/* -------------------------------------------------------------------------- */
void jcpivot_mzF(
PmzF  m,
int      rowpivot,
int      colpivot
)
{
int      rown_mns;

      for(rown_mns = rowpivot-1; rown_mns > -1 ; rown_mns--)
        {
          while( !(*(m->pb+rowpivot  *m->cols+colpivot*C4+0))
                             &&
                 !(*(m->pb+rowpivot  *m->cols+colpivot*C4+2))
                             &&
                  (colpivot < (m->cols/C4)-1)
               )
               {
                colpivot++;
               }

         jrpivot_mzF(m, rowpivot, colpivot,rown_mns);
        }
}

/* ------------------------------------- FUNCTION --------------------------  */
/* Do    :                                                                    */
/*                                                                            */
/* -------------------------------------------------------------------------- */
void jdpivot_mzF(
PmzF  m
)
{
int      rowpivot;

     for(rowpivot = (m->rows)-1; rowpivot  ; rowpivot--)
     {
      jcpivot_mzF(m, rowpivot,0);
     }
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -