⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bsxarg.c

📁 bsxfun, 一個matlab中十分常用的函數. 可以快速地對matrix進行接位複合運算~~
💻 C
📖 第 1 页 / 共 2 页
字号:
    {        Cpr = mxGetData(plhs[0]);        Cpi = mxGetImagData(plhs[0]);        Apr = mxGetData(prhs[0]);        Api = mxGetImagData(prhs[0]);                switch( classid )        {        case mxDOUBLE_CLASS:        case mxINT64_CLASS:        case mxUINT64_CLASS:            expand_64bits(Cpr, Cpi, Apr, Api, complexity);            break;                    case mxSINGLE_CLASS:        case mxINT32_CLASS:        case mxUINT32_CLASS:            expand_32bits(Cpr, Cpi, Apr, Api, complexity);            break;                    case mxCHAR_CLASS:        case mxINT16_CLASS:        case mxUINT16_CLASS:            expand_16bits(Cpr, Cpi, Apr, Api, complexity);            break;                    case mxLOGICAL_CLASS:        case mxINT8_CLASS:        case mxUINT8_CLASS:            expand_8bits(Cpr, Cpi, Apr, Api, complexity);            break;        }    }    if( nlhs < 2 ) return;        classid = mxGetClassID(prhs[1]);    complexity = mxIsComplex(prhs[1]) ? mxCOMPLEX : mxREAL;    plhs[1] = mxCreateNumericArray(Cndim, Cdims, classid, complexity);        if( mxGetNumberOfElements(plhs[1]) )    {        Cpr = mxGetData(plhs[1]);        Cpi = mxGetImagData(plhs[1]);        Apr = mxGetData(prhs[1]);        Api = mxGetImagData(prhs[1]);                A1 = B1;        A2 = B2;        A3 = B3;        A4 = B4;        A5 = B5;        A6 = B6;        A7 = B7;        A8 = B8;        A9 = B9;        A10 = B10;        A11 = B11;        A12 = B12;                switch( classid )        {        case mxDOUBLE_CLASS:        case mxINT64_CLASS:        case mxUINT64_CLASS:            expand_64bits(Cpr, Cpi, Apr, Api, complexity);            break;                    case mxSINGLE_CLASS:        case mxINT32_CLASS:        case mxUINT32_CLASS:            expand_32bits(Cpr, Cpi, Apr, Api, complexity);            break;                    case mxCHAR_CLASS:        case mxINT16_CLASS:        case mxUINT16_CLASS:            expand_16bits(Cpr, Cpi, Apr, Api, complexity);            break;                    case mxLOGICAL_CLASS:        case mxINT8_CLASS:        case mxUINT8_CLASS:            expand_8bits(Cpr, Cpi, Apr, Api, complexity);            break;        }    }}//-----------------------------------------------------------------------------//// Expansion function for 64-bit classes////-----------------------------------------------------------------------------void expand_64bits(void *cpr, void *cpi, void *apr, void *api, mxComplexity complexity){    bit64 *Cpr = (bit64 *) cpr;    bit64 *Cpi = (bit64 *) cpi;    bit64 *Apr = (bit64 *) apr;    bit64 *Api = (bit64 *) api;        if( complexity == mxCOMPLEX )    {        for( i12=0; i12<k12; i12++ )        for( i11=0; i11<k11; i11++ )        for( i10=0; i10<k10; i10++ )        for( i9=0; i9<k9; i9++ )        for( i8=0; i8<k8; i8++ )        for( i7=0; i7<k7; i7++ )        for( i6=0; i6<k6; i6++ )        for( i5=0; i5<k5; i5++ )        for( i4=0; i4<k4; i4++ )        for( i3=0; i3<k3; i3++ )        for( i2=0; i2<k2; i2++ )        for( i1=0; i1<k1; i1++ )        {            *Cpr++ = AX(Apr,i1,i2,i3,i4,i5,i6,i7,i8,i9,i10,i11,i12);            *Cpi++ = AX(Api,i1,i2,i3,i4,i5,i6,i7,i8,i9,i10,i11,i12);        }    }    else    {        for( i12=0; i12<k12; i12++ )        for( i11=0; i11<k11; i11++ )        for( i10=0; i10<k10; i10++ )        for( i9=0; i9<k9; i9++ )        for( i8=0; i8<k8; i8++ )        for( i7=0; i7<k7; i7++ )        for( i6=0; i6<k6; i6++ )        for( i5=0; i5<k5; i5++ )        for( i4=0; i4<k4; i4++ )        for( i3=0; i3<k3; i3++ )        for( i2=0; i2<k2; i2++ )        for( i1=0; i1<k1; i1++ )        {            *Cpr++ = AX(Apr,i1,i2,i3,i4,i5,i6,i7,i8,i9,i10,i11,i12);        }    }}//-----------------------------------------------------------------------------//// Expansion function for 32-bit classes////-----------------------------------------------------------------------------void expand_32bits(void *cpr, void *cpi, void *apr, void *api, mxComplexity complexity){    bit32 *Cpr = (bit32 *) cpr;    bit32 *Cpi = (bit32 *) cpi;    bit32 *Apr = (bit32 *) apr;    bit32 *Api = (bit32 *) api;        if( complexity == mxCOMPLEX )    {        for( i12=0; i12<k12; i12++ )        for( i11=0; i11<k11; i11++ )        for( i10=0; i10<k10; i10++ )        for( i9=0; i9<k9; i9++ )        for( i8=0; i8<k8; i8++ )        for( i7=0; i7<k7; i7++ )        for( i6=0; i6<k6; i6++ )        for( i5=0; i5<k5; i5++ )        for( i4=0; i4<k4; i4++ )        for( i3=0; i3<k3; i3++ )        for( i2=0; i2<k2; i2++ )        for( i1=0; i1<k1; i1++ )        {            *Cpr++ = AX(Apr,i1,i2,i3,i4,i5,i6,i7,i8,i9,i10,i11,i12);            *Cpi++ = AX(Api,i1,i2,i3,i4,i5,i6,i7,i8,i9,i10,i11,i12);        }    }    else    {        for( i12=0; i12<k12; i12++ )        for( i11=0; i11<k11; i11++ )        for( i10=0; i10<k10; i10++ )        for( i9=0; i9<k9; i9++ )        for( i8=0; i8<k8; i8++ )        for( i7=0; i7<k7; i7++ )        for( i6=0; i6<k6; i6++ )        for( i5=0; i5<k5; i5++ )        for( i4=0; i4<k4; i4++ )        for( i3=0; i3<k3; i3++ )        for( i2=0; i2<k2; i2++ )        for( i1=0; i1<k1; i1++ )        {            *Cpr++ = AX(Apr,i1,i2,i3,i4,i5,i6,i7,i8,i9,i10,i11,i12);        }    }}//-----------------------------------------------------------------------------//// Expansion function for 16-bit classes////-----------------------------------------------------------------------------void expand_16bits(void *cpr, void *cpi, void *apr, void *api, mxComplexity complexity){    bit16 *Cpr = (bit16 *) cpr;    bit16 *Cpi = (bit16 *) cpi;    bit16 *Apr = (bit16 *) apr;    bit16 *Api = (bit16 *) api;        if( complexity == mxCOMPLEX )    {        for( i12=0; i12<k12; i12++ )        for( i11=0; i11<k11; i11++ )        for( i10=0; i10<k10; i10++ )        for( i9=0; i9<k9; i9++ )        for( i8=0; i8<k8; i8++ )        for( i7=0; i7<k7; i7++ )        for( i6=0; i6<k6; i6++ )        for( i5=0; i5<k5; i5++ )        for( i4=0; i4<k4; i4++ )        for( i3=0; i3<k3; i3++ )        for( i2=0; i2<k2; i2++ )        for( i1=0; i1<k1; i1++ )        {            *Cpr++ = AX(Apr,i1,i2,i3,i4,i5,i6,i7,i8,i9,i10,i11,i12);            *Cpi++ = AX(Api,i1,i2,i3,i4,i5,i6,i7,i8,i9,i10,i11,i12);        }    }    else    {        for( i12=0; i12<k12; i12++ )        for( i11=0; i11<k11; i11++ )        for( i10=0; i10<k10; i10++ )        for( i9=0; i9<k9; i9++ )        for( i8=0; i8<k8; i8++ )        for( i7=0; i7<k7; i7++ )        for( i6=0; i6<k6; i6++ )        for( i5=0; i5<k5; i5++ )        for( i4=0; i4<k4; i4++ )        for( i3=0; i3<k3; i3++ )        for( i2=0; i2<k2; i2++ )        for( i1=0; i1<k1; i1++ )        {            *Cpr++ = AX(Apr,i1,i2,i3,i4,i5,i6,i7,i8,i9,i10,i11,i12);        }    }}//-----------------------------------------------------------------------------//// Expansion function for 8-bit classes////-----------------------------------------------------------------------------void expand_8bits(void *cpr, void *cpi, void *apr, void *api, mxComplexity complexity){    bit8 *Cpr = (bit8 *) cpr;    bit8 *Cpi = (bit8 *) cpi;    bit8 *Apr = (bit8 *) apr;    bit8 *Api = (bit8 *) api;        if( complexity == mxCOMPLEX )    {        for( i12=0; i12<k12; i12++ )        for( i11=0; i11<k11; i11++ )        for( i10=0; i10<k10; i10++ )        for( i9=0; i9<k9; i9++ )        for( i8=0; i8<k8; i8++ )        for( i7=0; i7<k7; i7++ )        for( i6=0; i6<k6; i6++ )        for( i5=0; i5<k5; i5++ )        for( i4=0; i4<k4; i4++ )        for( i3=0; i3<k3; i3++ )        for( i2=0; i2<k2; i2++ )        for( i1=0; i1<k1; i1++ )        {            *Cpr++ = AX(Apr,i1,i2,i3,i4,i5,i6,i7,i8,i9,i10,i11,i12);            *Cpi++ = AX(Api,i1,i2,i3,i4,i5,i6,i7,i8,i9,i10,i11,i12);        }    }    else    {        for( i12=0; i12<k12; i12++ )        for( i11=0; i11<k11; i11++ )        for( i10=0; i10<k10; i10++ )        for( i9=0; i9<k9; i9++ )        for( i8=0; i8<k8; i8++ )        for( i7=0; i7<k7; i7++ )        for( i6=0; i6<k6; i6++ )        for( i5=0; i5<k5; i5++ )        for( i4=0; i4<k4; i4++ )        for( i3=0; i3<k3; i3++ )        for( i2=0; i2<k2; i2++ )        for( i1=0; i1<k1; i1++ )        {            *Cpr++ = AX(Apr,i1,i2,i3,i4,i5,i6,i7,i8,i9,i10,i11,i12);        }    }}

⌨️ 快捷键说明

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