📄 ytinprd1.h
字号:
/* .h free ware xhunga@tiscali.fr */
/* --------------------------------- FUNCTION ------------------------------ */
/* Do : */
/* */
/* -------------------------------------------------------------------------- */
complexF uv_uv_zF(
PmzF mu,
PmzF mv
)
{
complexF InnerProduct;
double pbCnjv [MXR][MXC*C4];mzF mCnjv ={MXR,MXC*C4,&pbCnjv [0][0]};
double pbuCnjv[MXR][MXC*C4];mzF muCnjv={MXR,MXC*C4,&pbuCnjv[0][0]};
mCnjv.rows = mv->rows; mCnjv.cols = mv->cols*C4;
muCnjv.rows = 1; muCnjv.cols = 1*C4;
if (mu->rows != 1 ||
mu->cols != mv->rows * C4 ||
mv->cols != C4
)
{
printf(" uv_uCnjv() error.\n\n");
printf(" u.rows = 1\n");
printf(" u.cols = v.rows\n");
printf(" v.cols = 1\n");
printf("\nPress Return to continue\n");
getchar();
exit(1);
}
cnj_mzF(mv,&mCnjv);
mul_mzF(mu,&mCnjv,&muCnjv);
InnerProduct.r.n = *(muCnjv.pb+0 *muCnjv.cols+0);
InnerProduct.r.d = *(muCnjv.pb+0 *muCnjv.cols+1);
InnerProduct.i.n = *(muCnjv.pb+0 *muCnjv.cols+2);
InnerProduct.i.d = *(muCnjv.pb+0 *muCnjv.cols+3);
return(InnerProduct);
}
/* --------------------------------- FUNCTION ------------------------------ */
/* Do : */
/* */
/* -------------------------------------------------------------------------- */
complexF uv_uvT_zF(
PmzF mu,
PmzF mv
)
{
complexF InnerProduct;
double pbTrpsv [MXR][MXC*C4];mzF mTrpsv = {MXR,MXC*C4,&pbTrpsv [0][0]};
double pbuTrpsv[MXR][MXC*C4];mzF muTrpsv = {MXR,MXC*C4,&pbuTrpsv[0][0]};
mTrpsv.rows =mu->cols / C4; mTrpsv.cols = C4;
muTrpsv.rows =1; muTrpsv.cols = C4;
if (mu->rows != mv->rows ||
mu->cols != mv->cols ||
mu->rows != 1
)
{
printf(" uv_uvT() error.\n\n");
printf(" u.rows = v.rows\n");
printf(" u.cols = v.cols\n");
printf(" u.rows = 1\n");
printf("\nPress Return to continue\n");
getchar();
exit(1);
}
cnj_transpose_mzF(mv,&mTrpsv);
mul_mzF(mu,&mTrpsv,&muTrpsv);
InnerProduct.r.n = *(muTrpsv.pb+0 *muTrpsv.cols+0);
InnerProduct.r.d = *(muTrpsv.pb+0 *muTrpsv.cols+1);
InnerProduct.i.n = *(muTrpsv.pb+0 *muTrpsv.cols+2);
InnerProduct.i.d = *(muTrpsv.pb+0 *muTrpsv.cols+3);
return(InnerProduct);
}
/* --------------------------------- FUNCTION ------------------------------ */
/* Do : */
/* */
/* -------------------------------------------------------------------------- */
complexF uv_uTv_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]};
mTrpsu.rows = 1; mTrpsu.cols = mu->rows*C4;
mCnjv.rows = mv->rows ; mCnjv.cols = 1*C4;
mTrpsu_Cnjv.rows = 1; mTrpsu_Cnjv.cols = 1*C4;
if (mu->rows != mv->rows ||
mu->cols != mv->cols ||
mu->cols != C4
)
{
printf(" uv_vTu() error.\n\n");
printf(" u.rows = v.rows\n");
printf(" u.cols = v.cols\n");
printf(" u.cols = 1\n");
printf("\nPress Return to continue\n");
getchar();
exit(1);
}
transpose_mzF(mu,&mTrpsu);
cnj_mzF(mv,&mCnjv);
mul_mzF(&mTrpsu,&mCnjv,&mTrpsu_Cnjv);
InnerProduct.r.n = *(mTrpsu_Cnjv.pb+0 *mTrpsu_Cnjv.cols+0);
InnerProduct.r.d = *(mTrpsu_Cnjv.pb+0 *mTrpsu_Cnjv.cols+1);
InnerProduct.i.n = *(mTrpsu_Cnjv.pb+0 *mTrpsu_Cnjv.cols+2);
InnerProduct.i.d = *(mTrpsu_Cnjv.pb+0 *mTrpsu_Cnjv.cols+3);
return(InnerProduct);
}
/* --------------------------------- FUNCTION ------------------------------ */
/* Do : */
/* */
/* -------------------------------------------------------------------------- */
complexF uv_uTvT_zF(
PmzF mu,
PmzF mv
)
{
complexF InnerProduct;
double pbTrpsu [MXR][MXC*C4];mzF mTrpsu ={MXR,MXC*C4,&pbTrpsu [0][0]};
double pbTrpsv [MXR][MXC*C4];mzF mTrpsv ={MXR,MXC*C4,&pbTrpsv [0][0]};
double pbTrpsu_Trpsv[MXR][MXC*C4];mzF mTrpsu_Trpsv ={MXR,MXC*C4,&pbTrpsu_Trpsv[0][0]};
mTrpsu.rows = 1; mTrpsu.cols = mu->rows*C4;
mTrpsv.rows =mv->cols / C4; mTrpsv.cols = 1*C4;
mTrpsu_Trpsv.rows = 1; mTrpsu_Trpsv.cols = 1*C4;
if (mu->rows * C4 != mv->cols ||
mu->cols != C4 ||
mv->rows != 1
)
{
printf(" uv_vu() error.\n\n");
printf(" u.rows = v.cols\n");
printf(" u.cols = 1\n");
printf(" v.rows = 1\n");
printf("\nPress Return to continue\n");
getchar();
exit(1);
}
transpose_mzF( mu, &mTrpsu);
cnj_transpose_mzF( mv, &mTrpsv);
mul_mzF( &mTrpsu,&mTrpsv, &mTrpsu_Trpsv);
InnerProduct.r.n = *(mTrpsu_Trpsv.pb+0 *mTrpsu_Trpsv.cols+0);
InnerProduct.r.d = *(mTrpsu_Trpsv.pb+0 *mTrpsu_Trpsv.cols+1);
InnerProduct.i.n = *(mTrpsu_Trpsv.pb+0 *mTrpsu_Trpsv.cols+2);
InnerProduct.i.d = *(mTrpsu_Trpsv.pb+0 *mTrpsu_Trpsv.cols+3);
return(InnerProduct);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -