ytinprdm.h

来自「[[ Complex Matrices : Language c]]」· C头文件 代码 · 共 93 行

H
93
字号
/* .h                          free ware                   xhunga@tiscali.fr  */

/* --------------------------------- FUNCTION ------------------------------  */
/* Do    :                                                                    */
/*                                                                            */
/* -------------------------------------------------------------------------- */
complexF innerprod_Mnm_zF(
PmzF mU,
PmzF mV
)
{
complexF InnerProduct;

double pbTrpsU [MXR][MXC*C4];mzF mTrpsU ={MXR,MXC*C4,&pbTrpsU [0][0]};
double pbcnjV  [MXR][MXC*C4];mzF mcnjV  ={MXR,MXC*C4,&pbcnjV  [0][0]};

double pbTrpsU_cnjV[MXR][MXC*C4];mzF mTrpsU_cnjV ={MXR,MXC*C4,&pbTrpsU_cnjV[0][0]};

               mcnjV.rows = mV->rows;             mcnjV.cols = mV->cols;
              mTrpsU.rows = mU->cols/C4;         mTrpsU.cols = mU->rows*C4;
         mTrpsU_cnjV.rows = mTrpsU.rows;    mTrpsU_cnjV.cols = mV->cols;

                  cnj_mzF(mV,&mcnjV);
            transpose_mzF(mU,&mTrpsU);
                  mul_mzF(&mTrpsU,&mcnjV,&mTrpsU_cnjV);
  InnerProduct= trace_mzF(&mTrpsU_cnjV);

 return(InnerProduct);
}


/* --------------------------------- FUNCTION ------------------------------  */
/* Do    :                                                                    */
/*                                                                            */
/* -------------------------------------------------------------------------- */
complexF normP2_Mnm_zF(
PmzF mu
)
{
complexF NormP2;

         NormP2 = innerprod_Mnm_zF(mu,mu);

  return(NormP2);
}


/* --------------------------------- FUNCTION ------------------------------  */
/* Do    :                                                                    */
/*                                                                            */
/* -------------------------------------------------------------------------- */
complexF distanceP2_Mnm_zF(
PmzF mu,
PmzF mv
)
{
complexF DistanceP2;

double pbu_mns_v [MXR][MXC*C4];mzF mu_mns_v={MXR, MXC*C4,&pbu_mns_v[0][0]};

       mu_mns_v.rows = mu->rows;
       mu_mns_v.cols = mu->cols;

      sub_mzF(mu,mv,&mu_mns_v);

  DistanceP2 = normP2_Mnm_zF(&mu_mns_v);

  return(DistanceP2);
}

/* ------------------------------------- FUNCTION --------------------------  */
/* Do    :                                                                    */
/*                                                                            */
/* -------------------------------------------------------------------------- */
void projwn_Mnm_mzF(
PmzF mu,
PmzF mv,
PmzF mvn
)
{
complexF InnerProduv;
complexF               NormvP2;
complexF             InvNormvP2;
complexF InnerProduv_InvNormvP2;
/*-------------------------------- PROGRAM ---------------------------------- */
             InnerProduv = innerprod_Mnm_zF(mu,mv);
                 NormvP2 =    normP2_Mnm_zF(mv);
               InvNormvP2 =          inv_zF(NormvP2);
   InnerProduv_InvNormvP2 =          mul_zF(InnerProduv,InvNormvP2);
                                   Zmul_mzF(InnerProduv_InvNormvP2,mv,mvn);
}

⌨️ 快捷键说明

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