📄 ygg.h
字号:
/* xgj.h freeware xhunga@tiscali.fr */
/* ------------------------------------- FUNCTION -------------------------- */
/* Do : On a complexF. */
/* */
/* -------------------------------------------------------------------------- */
complexF gfpivot_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(fn_mns.r.n || fn_mns.i.n)
{
f = add_zF( mul_zF(fpivot,fn), mul_zF(fp,fn_mns));
}
else
{
f.r.n = (*(m->pb+rown_mns *m->cols+colp*C4+0));
f.r.d = (*(m->pb+rown_mns *m->cols+colp*C4+1));
f.i.n = (*(m->pb+rown_mns *m->cols+colp*C4+2));
f.i.d = (*(m->pb+rown_mns *m->cols+colp*C4+3));
}
f.r = mini_F(f.r);
f.i = mini_F(f.i);
return(f);
}
/* ------------------------------------- FUNCTION -------------------------- */
/* Do : On a row. */
/* */
/* -------------------------------------------------------------------------- */
void grpivot_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 = gfpivot_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 : */
/* */
/* -------------------------------------------------------------------------- */
int gcpivotnt0_mzF(
PmzF mA,
int rowpivot,
int colpivot)
{
int rowunderp;
int coeff0 = 1;
if(!(*(mA->pb+rowpivot *mA->cols+colpivot*C4+0))
&&
!(*(mA->pb+rowpivot *mA->cols+colpivot*C4+2)) )
{
coeff0 = 0;
rowunderp = rowpivot + 1;
do
{
if( (*(mA->pb+rowunderp *mA->cols+colpivot*C4+0))
||
(*(mA->pb+rowunderp *mA->cols+colpivot*C4+2)) )
{
swaprow_mzF(mA,rowpivot,rowunderp);
rowunderp = mA->rows;
coeff0 = 1;
}
rowunderp++;
}
while(rowunderp < mA->rows);
}
return(coeff0);
}
/* ------------------------------------- FUNCTION -------------------------- */
/* Do : On a column. */
/* */
/* -------------------------------------------------------------------------- */
void gcpivot_mzF(
PmzF m,
int rowpivot,
int colpivot
)
{
int rown_mns;
gcpivotnt0_mzF(m,rowpivot,colpivot);
for(rown_mns = rowpivot+1; rown_mns < (m->rows); rown_mns++)
{
while( (!(*(m->pb+rowpivot *m->cols+colpivot*C4+0))
&&
!(*(m->pb+rowpivot *m->cols+colpivot*C4+2)))
&&
(colpivot < m->cols/C4)
)
{
colpivot++;
};
grpivot_mzF(m, rowpivot, colpivot,rown_mns);
}
}
/* ------------------------------------- FUNCTION -------------------------- */
/* Do : . */
/* */
/* -------------------------------------------------------------------------- */
void gdpivot_mzF(
PmzF m
)
{
int rowpivot;
for(rowpivot = 0; rowpivot < (m->rows)-1 ;rowpivot++)
gcpivot_mzF(m, rowpivot,rowpivot);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -