📄 ldpcqenc.c
字号:
#include <mex.h>
#include <matrix.h> //for Matlab mx and mex fuctions
#include <math.h>
// 0 0 1 2
//[u]=ldpcqenc(h1j,s,cols)
void mexFunction( int nlhs, mxArray *plhs[],
int nrhs, const mxArray*prhs[] )
{
//input
double *h1j; //pointer variable for input matrix h1j
double *s; //pointer variable for input matrix s (inf bits)
double cols;
//output
double *u; //pointer variable for output matrix u (encoded bits)
//local
double h1num; //p solving matrix 1's number
double slen; //s length
unsigned int h1loop;
unsigned int uloop;
unsigned char p;
h1j = mxGetPr(prhs[0]); //pointer to h1j
s = mxGetPr(prhs[1]); //pointer to s
cols = mxGetScalar(prhs[2]);//value of cols
h1num = mxGetN(prhs[0]); //number of cols of h1j
slen = mxGetN(prhs[1]);
plhs[0] = mxCreateDoubleMatrix(1, cols, mxREAL); //matrix for output
u = mxGetPr(plhs[0]); //pointer to u
for (uloop=0; uloop<slen; uloop++)
{
u[uloop] = s[uloop];
}
h1loop = 0;
for (; uloop<cols; uloop++)
{
p = 0;
while (h1j[h1loop]<=uloop)
{
p = p ^ (unsigned char)u[(unsigned int)h1j[h1loop] - 1];
h1loop++;
}
u[uloop] = p;
h1loop++;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -