📄 encodehelpers.c
字号:
#include "encodehelpers.h"#define DBG_LVL 4/*************************** multiply a vector with ** a specified part of H ** using the sparseness of ** the graph ***************************/void graphmultiply(graphs *graph, int rowstart, int rowend, int colstart, int colend, int *in, int *out) { int node, socket; for (node=rowstart; node<rowend; node++) { for (socket=0; socket<cnodedegree; socket++) { if ((cnodeedge.dest>=colstart) && (cnodeedge.dest<colend)) out[node-rowstart]^=in[cnodeedge.dest-colstart]; } }}/********************************* perform a multiplication ** with T^-1 without explicitly ** computing T^-1 using the fact ** that T is lower triangular ** and sparse *********************************/void multiplybytminusone(graphs *graph, int gap, int *in, int *out) { int node, socket; int vnodenum, cnodenum; int temp; vnodenum=(*graph).vnodenum; cnodenum=(*graph).cnodenum; for (node=0; node<(cnodenum-gap); node++) { temp=0; for (socket=0; socket<cnodedegree; socket++) { if ((cnodeedge.dest-vnodenum+cnodenum-gap)>=0) temp^=out[cnodeedge.dest-vnodenum+cnodenum-gap]; } out[node]=(temp^in[node]); }}/******************* clear an array *******************/void cleararray (int *array, int length) { int i; for (i=0; i<length; i++) array[i]=0;}/******************* print a matrix *******************/void printmatrix (int *matrix, int gap, int vnodenum) { int row, col; for (row=0; row<gap; row++) { for (col=0; col<vnodenum; col++) PR_DBG_CL( 4,"%1d", *(matrix+row*vnodenum+col)); PR_DBG_CL( 4,"\n"); } PR_DBG_CL( 4,"\n");}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -