Пример #1
0
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);
}
Пример #2
0
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;
}