📄 optimize.c
字号:
break;
case 15:
ep->nodetype = maxcomplextype(ep1,ep2);
ep->cflags |= ((ep1->cflags &STD_PRAGMA_CXLIMITED)
&& (ep2->cflags & STD_PRAGMA_CXLIMITED)) ?
DF_CXLIMITED : 0;
ep->v.c.r = ep1->v.i ;
ep->v.c.i = ep2->v.f ;
break;
case 16:
ep->nodetype = maxcomplextype(ep1,ep2);
ep->cflags |= ((ep1->cflags &STD_PRAGMA_CXLIMITED)
&& (ep2->cflags & STD_PRAGMA_CXLIMITED)) ?
DF_CXLIMITED : 0;
ep->v.c.r = ep2->v.c.r ;
ep->v.c.i = ep1->v.f + ep2->v.c.i;
break;
case 17:
ep->nodetype = maxcomplextype(ep1,ep2);
ep->cflags |= ((ep1->cflags &STD_PRAGMA_CXLIMITED)
&& (ep2->cflags & STD_PRAGMA_CXLIMITED)) ?
DF_CXLIMITED : 0;
ep->v.c.r = ep1->v.c.r ;
ep->v.c.i = ep2->v.f + ep1->v.c.i;
break;
case 18:
ep->nodetype = maxcomplextype(ep1,ep2);
ep->cflags |= ((ep1->cflags &STD_PRAGMA_CXLIMITED)
&& (ep2->cflags & STD_PRAGMA_CXLIMITED)) ?
DF_CXLIMITED : 0;
ep->v.c.r = ep1->v.f + ep2->v.c.r ;
ep->v.c.i = ep2->v.c.i;
break;
case 19:
ep->nodetype = maxcomplextype(ep1,ep2);
ep->cflags |= ((ep1->cflags &STD_PRAGMA_CXLIMITED)
&& (ep2->cflags & STD_PRAGMA_CXLIMITED)) ?
DF_CXLIMITED : 0;
ep->v.c.r = ep2->v.f + ep1->v.c.r ;
ep->v.c.i = ep1->v.c.i;
break;
case 20:
ep->nodetype = maxcomplextype(ep1,ep2);
ep->cflags |= ((ep1->cflags &STD_PRAGMA_CXLIMITED)
&& (ep2->cflags & STD_PRAGMA_CXLIMITED)) ?
DF_CXLIMITED : 0;
ep->v.c.r = ep1->v.c.r + ep2->v.c.r;
ep->v.c.i = ep1->v.c.i + ep2->v.c.i;
break;
case 23:
ep->nodetype = maxcomplextype(ep1,ep2);
ep->cflags |= ((ep1->cflags &STD_PRAGMA_CXLIMITED)
&& (ep2->cflags & STD_PRAGMA_CXLIMITED)) ?
DF_CXLIMITED : 0;
ep->v.c.r = ep1->v.c.r + ep2->v.i;
ep->v.c.i = ep1->v.c.i ;
break;
case 24:
ep->nodetype = maxcomplextype(ep1,ep2);
ep->cflags |= ((ep1->cflags &STD_PRAGMA_CXLIMITED)
&& (ep2->cflags & STD_PRAGMA_CXLIMITED)) ?
DF_CXLIMITED : 0;
ep->v.c.r = ep2->v.c.r + ep1->v.i;
ep->v.c.i = ep2->v.c.i ;
break;
}
break;
case en_sub:
switch (mode)
{
case 1:
ep->nodetype = maxinttype(ep1, ep2);
ep->v.i = ep1->v.i - ep2->v.i;
ep->v.i = reint(ep);
break;
case 2:
ep->nodetype = maxfloattype(ep1, ep2);
ep->v.f = ep1->v.i - ep2->v.f;
break;
case 3:
ep->nodetype = maxfloattype(ep1, ep2);
ep->v.f = ep1->v.f - ep2->v.i;
break;
case 4:
ep->nodetype = maxfloattype(ep1, ep2);
ep->v.f = ep1->v.f - ep2->v.f;
break;
case 9:
ep->nodetype = maxcomplextype(ep1,ep2);
ep->cflags |= ((ep1->cflags &STD_PRAGMA_CXLIMITED)
&& (ep2->cflags & STD_PRAGMA_CXLIMITED)) ?
DF_CXLIMITED : 0;
ep->v.c.r = ep1->v.f ;
ep->v.c.i = -ep2->v.f;
break ;
case 10:
ep->nodetype = maxcomplextype(ep1,ep2);
ep->cflags |= ((ep1->cflags &STD_PRAGMA_CXLIMITED)
&& (ep2->cflags & STD_PRAGMA_CXLIMITED)) ?
DF_CXLIMITED : 0;
ep->v.c.r = -ep2->v.f ;
ep->v.c.i = ep1->v.f;
break ;
case 11:
ep->nodetype = maximaginarytype(ep1,ep2);
ep->v.f = ep1->v.f - ep2->v.f;
break ;
case 14:
ep->nodetype = maxcomplextype(ep1,ep2);
ep->cflags |= ((ep1->cflags &STD_PRAGMA_CXLIMITED)
&& (ep2->cflags & STD_PRAGMA_CXLIMITED)) ?
DF_CXLIMITED : 0;
ep->v.c.r = -ep2->v.i ;
ep->v.c.i = ep1->v.f ;
break;
case 15:
ep->nodetype = maxcomplextype(ep1,ep2);
ep->cflags |= ((ep1->cflags &STD_PRAGMA_CXLIMITED)
&& (ep2->cflags & STD_PRAGMA_CXLIMITED)) ?
DF_CXLIMITED : 0;
ep->v.c.r = ep1->v.i ;
ep->v.c.i = -ep2->v.f ;
break;
case 16:
ep->nodetype = maxcomplextype(ep1,ep2);
ep->cflags |= ((ep1->cflags &STD_PRAGMA_CXLIMITED)
&& (ep2->cflags & STD_PRAGMA_CXLIMITED)) ?
DF_CXLIMITED : 0;
ep->v.c.r = -ep2->v.c.r ;
ep->v.c.i = ep1->v.f - ep2->v.c.i;
break;
case 17:
ep->nodetype = maxcomplextype(ep1,ep2);
ep->cflags |= ((ep1->cflags &STD_PRAGMA_CXLIMITED)
&& (ep2->cflags & STD_PRAGMA_CXLIMITED)) ?
DF_CXLIMITED : 0;
ep->v.c.r = ep1->v.c.r ;
ep->v.c.i = -ep2->v.f + ep1->v.c.i;
break;
case 18:
ep->nodetype = maxcomplextype(ep1,ep2);
ep->cflags |= ((ep1->cflags &STD_PRAGMA_CXLIMITED)
&& (ep2->cflags & STD_PRAGMA_CXLIMITED)) ?
DF_CXLIMITED : 0;
ep->v.c.r = ep1->v.f - ep2->v.c.r ;
ep->v.c.i = -ep2->v.c.i;
break;
case 19:
ep->nodetype = maxcomplextype(ep1,ep2);
ep->cflags |= ((ep1->cflags &STD_PRAGMA_CXLIMITED)
&& (ep2->cflags & STD_PRAGMA_CXLIMITED)) ?
DF_CXLIMITED : 0;
ep->v.c.r = -ep2->v.f + ep1->v.c.r ;
ep->v.c.i = ep1->v.c.i;
break;
case 20:
ep->nodetype = maxcomplextype(ep1,ep2);
ep->cflags |= ((ep1->cflags &STD_PRAGMA_CXLIMITED)
&& (ep2->cflags & STD_PRAGMA_CXLIMITED)) ?
DF_CXLIMITED : 0;
ep->v.c.r = ep1->v.c.r - ep2->v.c.r;
ep->v.c.i = ep1->v.c.i - ep2->v.c.i;
break;
case 23:
ep->nodetype = maxcomplextype(ep1,ep2);
ep->cflags |= ((ep1->cflags &STD_PRAGMA_CXLIMITED)
&& (ep2->cflags & STD_PRAGMA_CXLIMITED)) ?
DF_CXLIMITED : 0;
ep->v.c.r = ep1->v.c.r - ep2->v.i;
ep->v.c.i = ep1->v.c.i ;
break;
case 24:
ep->nodetype = maxcomplextype(ep1,ep2);
ep->cflags |= ((ep1->cflags &STD_PRAGMA_CXLIMITED)
&& (ep2->cflags & STD_PRAGMA_CXLIMITED)) ?
DF_CXLIMITED : 0;
ep->v.c.r = -ep2->v.c.r + ep1->v.i;
ep->v.c.i = -ep2->v.c.i ;
break;
}
break;
case en_pmul:
case en_umul:
case en_mul:
case en_arrayindex:
switch (mode)
{
case 1:
ep->nodetype = maxinttype(ep1, ep2);
ep->v.i = ep1->v.i *ep2->v.i;
ep->v.i = reint(ep);
break;
case 2:
ep->nodetype = maxfloattype(ep1, ep2);
ep->v.f = ep1->v.i *ep2->v.f;
break;
case 3:
ep->nodetype = maxfloattype(ep1, ep2);
ep->v.f = ep1->v.f *ep2->v.i;
break;
case 4:
ep->nodetype = maxfloattype(ep1, ep2);
ep->v.f = ep1->v.f *ep2->v.f;
break;
case 9:
ep->nodetype = maximaginarytype(ep1, ep2);
ep->v.f = ep1->v.f * ep2->v.f;
break;
case 10:
ep->nodetype = maximaginarytype(ep1, ep2);
ep->v.f = ep1->v.f * ep2->v.f;
break;
case 11:
ep->nodetype = maxfloattype(ep1, ep2);
ep->v.f = -ep1->v.f * ep2->v.f;
break;
case 14:
ep->nodetype = maximaginarytype(ep1, ep2);
ep->v.f = ep1->v.f * ep2->v.i;
break;
case 15:
ep->nodetype = maximaginarytype(ep1, ep2);
ep->v.f = ep1->v.i * ep2->v.f;
break;
case 16:
ep->nodetype = maxcomplextype(ep1, ep2);
ep->cflags |= ((ep1->cflags &STD_PRAGMA_CXLIMITED)
&& (ep2->cflags & STD_PRAGMA_CXLIMITED)) ?
DF_CXLIMITED : 0;
ep->v.c.r = -ep1->v.f * ep2->v.c.i;
ep->v.c.i = ep1->v.f * ep2->v.c.r;
break;
case 17:
ep->nodetype = maxcomplextype(ep1, ep2);
ep->cflags |= ((ep1->cflags &STD_PRAGMA_CXLIMITED)
&& (ep2->cflags & STD_PRAGMA_CXLIMITED)) ?
DF_CXLIMITED : 0;
ep->v.c.r = -ep2->v.f * ep1->v.c.i;
ep->v.c.i = ep2->v.f * ep1->v.c.r;
break;
case 18:
ep->nodetype = maxcomplextype(ep1, ep2);
ep->cflags |= ((ep1->cflags &STD_PRAGMA_CXLIMITED)
&& (ep2->cflags & STD_PRAGMA_CXLIMITED)) ?
DF_CXLIMITED : 0;
ep->v.c.r = ep1->v.f * ep2->v.c.r;
ep->v.c.i = ep1->v.f * ep2->v.c.i;
break;
case 19:
ep->nodetype = maxcomplextype(ep1, ep2);
ep->cflags |= ((ep1->cflags &STD_PRAGMA_CXLIMITED)
&& (ep2->cflags & STD_PRAGMA_CXLIMITED)) ?
DF_CXLIMITED : 0;
ep->v.c.r = ep2->v.f * ep1->v.c.r;
ep->v.c.i = ep2->v.f * ep1->v.c.i;
break;
case 13:
ep->nodetype = maxcomplextype(ep1, ep2);
ep->cflags |= ((ep1->cflags &STD_PRAGMA_CXLIMITED)
&& (ep2->cflags & STD_PRAGMA_CXLIMITED)) ?
DF_CXLIMITED : 0;
ep->v.c.r = ep2->v.f * ep1->v.c.r;
ep->v.c.i = ep2->v.f * ep1->v.c.i;
break;
case 24:
ep->nodetype = maxcomplextype(ep1, ep2);
ep->cflags |= ((ep1->cflags &STD_PRAGMA_CXLIMITED)
&& (ep2->cflags & STD_PRAGMA_CXLIMITED)) ?
DF_CXLIMITED : 0;
ep->v.c.r = ep1->v.i * ep2->v.c.r;
ep->v.c.i = ep1->v.i * ep2->v.c.i;
break;
}
break;
case en_pdiv:
case en_div:
case en_udiv:
switch (mode)
{
case 1:
ep->nodetype = maxinttype(ep1, ep2);
if (isunsigned(ep1) || isunsigned(ep2))
ep->v.i = (ULLONG_TYPE)ep1->v.i / (ULLONG_TYPE)ep2->v.i;
else
ep->v.i = ep1->v.i / ep2->v.i;
ep->v.i = reint(ep);
break;
case 2:
ep->nodetype = maxfloattype(ep1, ep2);
if (isunsigned(ep1))
ep->v.f = (ULLONG_TYPE)ep1->v.i / ep2->v.f;
else
ep->v.f = ep1->v.i / ep2->v.f;
break;
case 3:
ep->nodetype = maxfloattype(ep1, ep2);
if (isunsigned(ep2))
ep->v.f = ep1->v.f / (ULLONG_TYPE)ep2->v.i;
else
ep->v.f = ep1->v.f / ep2->v.i;
break;
case 4:
ep->nodetype = maxfloattype(ep1, ep2);
ep->v.f = ep1->v.f / ep2->v.f;
break;
case 9:
ep->nodetype = maximaginarytype(ep1, ep2);
ep->v.f = -ep1->v.f / ep2->v.f;
break;
case 10:
ep->nodetype = maximaginarytype(ep1, ep2);
ep->v.f = ep1->v.f / ep2->v.f;
break;
case 11:
ep->nodetype = maximaginarytype(ep1, ep2);
ep->v.f = ep1->v.f / ep2->v.f;
break;
case 14:
ep->nodetype = maximaginarytype(ep1, ep2);
ep->v.f = ep1->v.f / ep2->v.i;
break;
case 15:
ep->nodetype = maximaginarytype(ep1, ep2);
ep->v.f = -ep1->v.i / ep2->v.f;
break;
case 17:
ep->nodetype = maxcomplextype(ep1, ep2);
ep->cflags |= ((ep1->cflags &STD_PRAGMA_CXLIMITED)
&& (ep2->cflags & STD_PRAGMA_CXLIMITED)) ?
DF_CXLIMITED : 0;
ep->v.c.r = ep1->v.c.i / ep2->v.f;
ep->v.c.i = - ep1->v.c.r / ep2->v.f;
break;
case 19:
ep->nodetype = maxcomplextype(ep1, ep2);
ep->cflags |= ((ep1->cflags &STD_PRAGMA_CXLIMITED)
&& (ep2->cflags & STD_PRAGMA_CXLIMITED)) ?
DF_CXLIMITED : 0;
ep->v.c.r = ep1->v.c.r / ep2->v.f;
ep->v.c.i = ep1->v.c.i / ep2->v.f;
break;
case 23:
ep->nodetype = maxcomplextype(ep1, ep2);
ep->cflags |= ((ep1->cflags &STD_PRAGMA_CXLIMITED)
&& (ep2->cflags & STD_PRAGMA_CXLIMITED)) ?
DF_CXLIMITED : 0;
ep->v.c.r = ep1->v.c.r / ep2->v.i;
ep->v.c.i = ep1->v.c.i / ep2->v.i;
break;
}
break;
case en_mod:
ep->nodetype = maxinttype(ep1, ep2);
if (isunsigned(ep1) || isunsigned(ep2))
ep->v.i = (ULLONG_TYPE)ep1->v.i % (ULLONG_TYPE)ep2->v.i;
else
ep->v.i = ep1->v.i % ep2->v.i;
ep->v.i = reint(ep);
break;
case en_lsh:
case en_alsh:
ep->nodetype = ep1->nodetype; // maxinttype(ep1, ep2);
ep->v.i = ep1->v.i << ep2->v.i;
ep->v.i = reint(ep);
break;
case en_rsh:
ep->nodetype = ep1->nodetype; // maxinttype(ep1, ep2);
ep->v.i = reint(ep);
ep->v.i = ((ULLONG_TYPE)ep1->v.i) >> ep2->v.i;
ep->v.i = reint(ep);
break;
case en_arsh:
case en_arshd:
ep->nodetype = ep1->nodetype; // maxinttype(ep1, ep2);
ep->v.i = ep1->v.i >> ep2->v.i;
ep->v.i = reint(ep);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -