void tables_WriteMatrixD (double **Mat, int i1, int i2, int j1, int j2, int w, int p, tables_StyleType style, char Nom[]) { int k; int m; int j; int i; size_t bidon; double prec; double x; size_t trouve; char S[32]; FixeDelim (style); if (strlen (Nom) > 0) { printf ("%s = ", Nom); } prec = pow (10.0, (double) p); printf ("%c\n", OuvrantMat); for (i = i1; i <= i2; i++) { printf ("%c", OuvrantVec); for (j = j1; j <= j2; j++) { printf (" "); switch (style) { case tables_Mathematica: x = Mat[i][j]; if (((x != 0.0) && (fabs (x) < 0.1)) || (fabs (x) > prec)) { sprintf (S, "%.*G", (int) p, x); /* automatique avec %G ... : myst_Subst(S, "e", "E"); */ mystr_Position ("E", S, 0, &bidon, &trouve); if (trouve) { mystr_Subst (S, "E", "*10^("); strncat (S, ")", (size_t) 2); } } else sprintf (S, "%.*f", (int) p, x); m = (int) strlen (S); for (k = 1; k <= w - m; k++) { printf (" "); } printf ("%s", S); break; default: /* tables_Matlab, Default */ printf ("%*.*G", (int) w, (int) p, Mat[i][j]); break; } if (j < j2) printf ("%c", SepareElem); } printf ("%c", FermantVec); if (i < i2) printf ("%c\n", SepareVec); } printf ("%c\n\n", FermantMat); }
unif01_Gen *utaus_CreateTausJ (unsigned int k, unsigned int q, unsigned int s, unsigned int j, unsigned int Y) { unif01_Gen *gen; Taus_param *param; unsigned int pos; int found; size_t len; char str[LEN1 + 1] = ""; gen = CreateTaus_0 ("utaus_CreateTausJ", k, q, s, Y); param = gen->param; param->J = j; gen->GetBits = &TausJ_Bits; gen->GetU01 = &TausJ_U01; addstr_Uint (str, ", j = ", j); len = strlen (gen->name) + strlen (str); gen->name = util_Realloc (gen->name, (len + 1) * sizeof (char)); mystr_Position (", Y =", gen->name, 0, &pos, &found); mystr_Insert (gen->name, str, pos); return gen; }