init
[csRadar.git] / csrComb.h
1 #ifndef CSR_COMB_H
2 #define CSR_COMB_H
3
4 void csr_comb_init( int const M, int p[] )
5 {
6 for( int i = 0; i < M; i ++ )
7 {
8 p[ i ] = i;
9 }
10 }
11
12 int csr_comb( int M, int N, int p[] )
13 {
14 for( int j = M-1; j >= 0; --j )
15 {
16 if( p[j] < N-(M-j) ) // Can J be incremented?
17 {
18 p[j] ++;
19 for( int k = j+1; k < M; k ++ ) // Adjust following indexes
20 {
21 p[k] = p[j]+k-j;
22 }
23 return 1;
24 }
25 }
26 return 0;
27 }
28
29 void csr_comb_print( int M, int p[] )
30 {
31 for( int i = 0; i < M; i ++ )
32 {
33 printf( "%d ", p[i] );
34 }
35
36 printf( "\n" );
37 }
38
39 #endif