int globalFrictionContact_printInFile(GlobalFrictionContactProblem* problem, FILE* file) { if (! problem) { fprintf(stderr, "Numerics, GlobalFrictionContactProblem printInFile failed, NULL input.\n"); exit(EXIT_FAILURE); } int i; int d = problem->dimension; fprintf(file, "%d\n", d); int nc = problem->numberOfContacts; fprintf(file, "%d\n", nc); printInFile(problem->M, file); printInFile(problem->H, file); for (i = 0; i < problem->M->size1; i++) { fprintf(file, "%32.24e ", problem->q[i]); } fprintf(file, "\n"); for (i = 0; i < problem->H->size1; i++) { fprintf(file, "%32.24e ", problem->b[i]); } fprintf(file, "\n"); for (i = 0; i < nc; i++) { fprintf(file, "%32.24e ", problem->mu[i]); } fprintf(file, "\n"); return 0; }
int secondOrderConeLinearComplementarityProblem_printInFile(SecondOrderConeLinearComplementarityProblem* problem, FILE* file) { if(! problem) { fprintf(stderr, "Numerics, SecondOrderConeLinearComplementarityProblem printInFile failed, NULL input.\n"); exit(EXIT_FAILURE); } int i; int n = problem->n; fprintf(file, "%d\n", n); int nc = problem->nc; fprintf(file, "%d\n", nc); printInFile(problem->M, file); for(i = 0; i < problem->M->size1; i++) { fprintf(file, "%32.24e ", problem->q[i]); } fprintf(file, "\n"); for(i = 0; i < nc+1; i++) { fprintf(file, "%i ", problem->coneIndex[i]); } fprintf(file, "\n"); for(i = 0; i < nc; i++) { fprintf(file, "%32.24e ", problem->mu[i]); } fprintf(file, "\n"); return 0; }
int relay_printInFile(RelayProblem* problem, FILE* file) { if (! problem) { fprintf(stderr, "Numerics, RelayProblem printInFile failed, NULL input.\n"); exit(EXIT_FAILURE); } int i; int n = problem->size; fprintf(file, "%d\n", n); printInFile(problem->M, file); for (i = 0; i < problem->M->size1; i++) { fprintf(file, "%32.24e ", problem->q[i]); } fprintf(file, "\n"); for (i = 0; i < problem->M->size1; i++) { fprintf(file, "%32.24e ", problem->lb[i]); } fprintf(file, "\n"); for (i = 0; i < problem->M->size1; i++) { fprintf(file, "%32.24e ", problem->ub[i]); } return 1; }
int linearComplementarity_printInFile(LinearComplementarityProblem* problem, FILE* file) { if (! problem) { fprintf(stderr, "Numerics, LinearComplementarityProblem printInFile failed, NULL input.\n"); exit(EXIT_FAILURE); } int i; int n = problem->size; fprintf(file, "%d\n", n); printInFile(problem->M, file); for (i = 0; i < problem->M->size1; i++) { fprintf(file, "%32.24e ", problem->q[i]); } return 1; }
int main(void) { printf("========= Starts Numerics tests for NumericsMatrix ========= \n"); int i, nmm = 4 ; NumericsMatrix ** NMM = (NumericsMatrix **)malloc(nmm * sizeof(NumericsMatrix *)) ; NumericsMatrix ** Mread = (NumericsMatrix **)malloc(nmm * sizeof(NumericsMatrix *)) ; for (i = 0 ; i < nmm; i++) { NMM[i] = newNumericsMatrix(); Mread[i] = newNumericsMatrix(); } int info = test_BuildNumericsMatrix(NMM); if (info != 0) { printf("Construction failed ...\n"); return info; } printf("Construction ok ...\n"); /* Test of various I/O functions */ for (i = 0 ; i < nmm; i++) { printf("test on NMM[%i]\n", i); NM_display(NMM[i]); displayRowbyRow(NMM[i]); FILE * foutput = fopen("testprintInfile.dat", "w"); printInFile(NMM[i], foutput); fclose(foutput); FILE * finput = fopen("testprintInfile.dat", "r"); readInFile(NMM[i], finput); fclose(finput); FILE * finput2 = fopen("testprintInfile.dat", "r"); newFromFile(Mread[i], finput2); fclose(finput2); char filename[50] = "testprintInfileName.dat"; printInFileName(NMM[i], filename); readInFileName(NMM[i], filename); printf("end of test on NMM[%i]\n", i); } for (i = 0 ; i < nmm; i++, i++) { FILE * foutput2 = fopen("testprintInfileForScilab.dat", "w"); printInFileForScilab(NMM[i], foutput2); fclose(foutput2); } /* free memory */ for (i = 0 ; i < nmm; i++) { freeNumericsMatrix(NMM[i]); free(NMM[i]); freeNumericsMatrix(Mread[i]); free(Mread[i]); } free(NMM); free(Mread); printf("========= End Numerics tests for NumericsMatrix ========= \n"); return info; }
void readInFileName(NumericsMatrix* const m, const char *filename) { FILE* finput = fopen(filename, "r"); printInFile(m, finput); fclose(finput); }
void printInFileName(const NumericsMatrix* const m, const char *filename) { FILE* foutput = fopen(filename, "w"); printInFile(m, foutput); fclose(foutput); }
int mixedLinearComplementarity_printInFile(MixedLinearComplementarityProblem* problem, FILE* file) { int info = 0; if (! problem) { fprintf(stderr, "Numerics, MixedLinearComplementarityProblem printInFile failed, NULL input.\n"); exit(EXIT_FAILURE); } int i, j; fprintf(file, "%d\n", problem->isStorageType1); fprintf(file, "%d\n", problem->isStorageType2); int n = problem->n; fprintf(file, "%d\n", n); int m = problem->m; fprintf(file, "%d\n", m); if (problem->isStorageType1) { int nbBlocks = 0; fprintf(file, "%d ", problem->blocksRows[nbBlocks]); while (problem->blocksRows[nbBlocks] < (n + m)) { nbBlocks++; fprintf(file, "%d ", problem->blocksRows[nbBlocks]); } fprintf(file, "\n"); for (i = 0; i < nbBlocks; i++) { fprintf(file, "%d ", problem->blocksIsComp[i]); } fprintf(file, "\n"); printInFile(problem->M, file); for (i = 0; i < problem->M->size1; i++) { fprintf(file, "%32.24e ", problem->q[i]); } fprintf(file, "\n"); /* return 1; */ /* if (problem->isStorageType2) */ /* { */ /* printf("Numerics, MixedLinearComplementarityProblem printInFile only Storage1 has been printed.\n"); */ /* } */ } if (problem->isStorageType2) { for (i = 0; i < problem->n; i++) { for (j = 0; j < problem->n; j++) { fprintf(file, "%32.24e ", problem->A[i + j * n]); } fprintf(file, "\n"); } for (i = 0; i < problem->m; i++) { for (j = 0; j < problem->m; j++) { fprintf(file, "%32.24e ", problem->B[i + j * m]); } fprintf(file, "\n"); } for (i = 0; i < problem->n; i++) { for (j = 0; j < problem->m; j++) { fprintf(file, "%32.24e ", problem->C[i + j * n]); } fprintf(file, "\n"); } for (i = 0; i < problem->m; i++) { for (j = 0; j < problem->n; j++) { fprintf(file, "%32.24e ", problem->D[i + j * m]); } fprintf(file, "\n"); } for (i = 0; i < problem->n; i++) { fprintf(file, "%32.24e ", problem->a[i]); } fprintf(file, "\n"); for (i = 0; i < problem->m; i++) { fprintf(file, "%32.24e ", problem->b[i]); } } return info; }