#include <time.h>
#include <stdlib.h>
#include "ldpc-matrix.h"
#include "rand_pmms.h"
Go to the source code of this file.
◆ degree_of_row()
| int degree_of_row |
( |
char ** | matrix, |
|
|
int | row, |
|
|
int | column_num ) |
Definition at line 27 of file ldpc-matrix.cpp.
28{
29 int j = 0;
30 int deg = 0;
31
32 for ( j = 0; j < column_num; j++ )
33 if ( matrix[row][j] )
34 deg++;
35
36 return deg;
37}
Referenced by left_matrix_init().
◆ left_matrix_init()
| void left_matrix_init |
( |
char ** | matrix, |
|
|
int | k, |
|
|
int | n, |
|
|
int | N1, |
|
|
int | seed ) |
Definition at line 40 of file ldpc-matrix.cpp.
41{
42 int i;
43 int j;
44 int h;
45 int t;
47
50
51 for ( h = N1*k - 1; h >= 0; h--)
52 {
53 u[h] = h % (n-k);
54 }
55
56
57 t = 0;
58 for ( j = 0; j < k; j++ )
59 {
60 for ( h = 0; h < N1; h++ )
61 {
62
63 for ( i = t; i < N1*k && matrix [u[i]] [j] ; i++);
64 if ( i < N1*k )
65 {
66
67 do {
69 } while ( matrix [u[i]] [j]);
70 matrix [u[i]] [j] = 1;
71
72
73 u[i] = u[t];
74 t++;
75 } else {
76
77 do {
79 } while ( matrix[i][j] );
80 matrix[i][j] = 1;
81 }
82 }
83 }
84
85
86 for ( i = 0; i < n-k; i++ )
87 {
89 {
91 matrix[i][j] = 1;
92 }
94 {
95 do {
97 } while ( matrix[i][j] );
98 matrix[i][j] = 1;
99 }
100 }
101}
void seedi(unsigned long int s)
unsigned long int pmms_rand(unsigned long int maxv)
int degree_of_row(char **matrix, int row, int column_num)
References degree_of_row(), LDGM_MAX_K, Rand_pmms::pmms_rand(), and Rand_pmms::seedi().
Referenced by generate_ldgm_matrix().
◆ right_matrix_staircase_init()
| void right_matrix_staircase_init |
( |
char ** | matrix, |
|
|
int | k, |
|
|
int | n ) |
Definition at line 103 of file ldpc-matrix.cpp.
104{
105 int i;
106
107 matrix[0][k] = 1;
108 for ( i = 1; i < n-k; i++)
109 {
110 matrix[i][k+i] = 1;
111 matrix[i][k+i-1] = 1;
112 }
113}