Hallo, Ich habe einige fragen zu der folgenden Funktion aus einer Matrix Lib. - kann mir jemand sagen, für welche Matrixoperation die funktion da ist. - was unterscheidet die Bedingung am ende der funktion? - wie kann man diese if Bedingung in C# umsetzen?
1 | double matrix3D::minor(int col,int ver) const |
2 | {
|
3 | double matrix[3][3]; |
4 | |
5 | int dstCol,dstVer; |
6 | dstCol=0; |
7 | for(int srcCol=0;srcCol<4;srcCol++) |
8 | {
|
9 | dstVer=0; |
10 | if(srcCol==col) |
11 | {
|
12 | srcCol++; |
13 | if(srcCol>3) |
14 | break; |
15 | }
|
16 | for(int srcVer=0;srcVer<4;srcVer++) |
17 | {
|
18 | if(srcVer==ver) |
19 | {
|
20 | srcVer++; |
21 | if(srcVer>3) |
22 | break; |
23 | }
|
24 | if(dstCol>2 || dstVer>2) |
25 | THROW_ERROR(VALUE_OUT_OF_RANGE); |
26 | |
27 | matrix[dstCol][dstVer]=coeffs[srcCol][srcVer]; |
28 | dstVer++; |
29 | }
|
30 | dstCol++; |
31 | }
|
32 | |
33 | if((col+ver)&1) // was fragt die bedingung ab |
34 | return -det3x3(matrix); |
35 | else
|
36 | return det3x3(matrix); |
37 | }
|
danke