📄 ygj.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 + -