void StVKReducedStiffnessMatrix::PrintMatrix() { int i,j,k; int output; // free terms int index = 0; printf("{"); for(output=0; output<r; output++) { printf("{"); for(i=0; i<r; i++) { int i1 = output; int j1 = i; if (i1 > j1) { i1 = i; j1 = output; } printf("%.15f",freeCoef(i1,j1)); if (i != r-1) printf(", "); index++; if (index % 5 == 4) printf("\n"); } printf("}"); if (output != r-1) printf(", "); } printf("} + "); // linear terms printf("{"); index = 0; int indexEntry = 0; for(output=0; output<r; output++) { printf("{"); for(i=0; i<r; i++) { int i1 = output; int j1 = i; if (i1 > j1) { i1 = i; j1 = output; } for(j=0; j<r; j++) { printf("%.15f * q%d",linearCoef(i1,j1,j),j); if (j != r - 1) printf(" + "); index++; if (index % 5 == 4) printf("\n"); } if (i != r - 1) printf(", "); indexEntry++; } printf("}"); if (output != r - 1) printf(",\n"); } printf("}"); // quadratic terms printf(" + {"); index = 0; indexEntry = 0; for(output=0; output<r; output++) { printf("{"); for(i=0; i<r; i++) { int i1 = output; int j1 = i; if (i1 > j1) { i1 = i; j1 = output; } for(j=0; j<r; j++) for(k=j; k<r; k++) { printf("%.15f * q%d * q%d",quadraticCoef(i1,j1,j,k),j,k); if (!((k == r - 1) && ( j == r-1))) printf(" + "); index++; if (index % 5 == 4) printf("\n"); } if (i != r - 1) printf(", "); indexEntry++; } printf("}"); if (output != r - 1) printf(",\n"); } printf("}"); }
void StVKReducedHessianTensor::PrintTensor() { int i; int output; int input,deriv; // free terms int index = 0; printf("{"); for(output=0; output<r; output++) { printf("{"); for(input=0; input<r; input++) { int i1 = output; int j1 = input; if (j1 < i1) // swap them { j1 = output; i1 = input; } // now i1 <= j1 printf("{"); for(deriv=0; deriv<r; deriv++) { printf("%.15f",freeCoef(i1,j1,deriv)); if (deriv != r-1) printf(", "); index++; if (index % 5 == 4) printf("\n"); } printf("}"); if (input != r-1) printf(", "); } printf("}"); if (output != r-1) printf(", "); } printf("} +\n{"); index = 0; for(output=0; output<r; output++) { printf("{"); for(input=0; input<r; input++) { printf("{"); int i1 = output; int j1 = input; if (j1 < i1) // swap them { j1 = output; i1 = input; } // now i1 <= j1 for(deriv=0; deriv<r; deriv++) { for(i=0; i<r; i++) { printf("%.15f * q%d",linearCoef(i1,j1,deriv,i),i); if (i != r-1) printf("+ "); index++; if (index % 5 == 4) printf("\n"); } if (deriv != r-1) printf(", "); } printf("}"); if (input != r-1) printf(", "); } printf("}"); if (output != r-1) printf(", "); } printf("}"); }