home *** CD-ROM | disk | FTP | other *** search
- /*xxalloc.c**************************************************************/
- /* */
- /* xxalloc */
- /* */
- /* Placed in the public domain */
- /* by Harold G. Walters 1988 */
- /* */
- /* Bug fixes, ect to walters@ce.okstate.edu until May 1989 */
- /* */
- /* This software is provided as is. No claims are made for */
- /* this software regarding its fitness and/or correctness for */
- /* any purpose. Use of this software is at the user's own risk. */
- /* */
- /************************************************************************/
-
- #include <stdio.h>
-
- extern char *calloc();
- extern void free();
-
- #define STRLEN 132
- static char msg[STRLEN];
- static long amount = 0L;
-
- extern void xx_error();
-
- char *xx_alloc(n)
- unsigned n;
- {
- char *m;
- amount += n;
- if ((m = calloc(1, n)) == (char *) NULL)
- {
- sprintf(msg, "xx_alloc: memory allocation error at %ld bytes\n",
- amount);
- xx_error(msg);
- return((char *) NULL);
- }
- return((char *) m);
- }
-
- void xx_free(p, n)
- char *p;
- unsigned n;
- {
- free(p);
- amount -= n;
- return;
- }
-
- long xx_amount()
- {
- return(amount);
- }
-
- /* end index >= begin index */
- static void index_test(b, e)
- int b, e;
- {
- if (e < b)
- {
- sprintf(msg, "index_test: end index %d < begin index %d\n",
- e, b);
- xx_error(msg);
- /* exit here even if xx_error() returns */
- /* this is a programming error if this ever happens */
- exit(2);
- }
- return;
- }
-
- char *n1_alloc(ib, ie, n)
- int ib, ie, n;
- {
- char *m;
- index_test(ib, ie);
- m = (char *) xx_alloc((unsigned) (ie - ib + 1) * n);
- if (m == (char *) NULL) return((char *) NULL);
- m -= ib * n;
- return((char *) m);
- }
-
- char *n1_renum(m, ib, ie, nib, nie, n)
- char *m;
- int ib, ie, nib, nie, n;
- {
- index_test(ib, ie);
- index_test(nib, nie);
- m += (ib - nib) * n;
- return((char *) m);
- }
-
- void n1_free(m, ib, ie, n)
- char *m;
- int ib, ie, n;
- {
- index_test(ib, ie);
- xx_free((char*) (m + ib * n), (unsigned) ((ie - ib + 1) * n));
- return;
- }
-
- void n1_init(m, ib, ie, n, nini)
- char *m;
- int ib, ie, n;
- void (*nini)();
- {
- int i;
- index_test(ib, ie);
- if (nini == (void (*)()) NULL)
- return;
- for (i = ib; i <= ie; i++)
- (*nini)(&m[i*n]);
- return;
- }
-
- void n1_prnt(fp, nprn, m, ib, ie, n)
- FILE *fp;
- void (*nprn)();
- char *m;
- int ib, ie, n;
- {
- int i;
- index_test(ib, ie);
- if (nprn == (void (*)()) NULL)
- return;
- for (i = ib; i <= ie; i++)
- (*nprn)(fp, &m[i*n]);
- return;
- }
-
- char **n2_alloc(ib, ie, jb, je, n)
- int ib, ie, jb, je, n;
- {
- int i;
- char **m;
- index_test(ib, ie);
- index_test(jb, je);
- m = (char **) xx_alloc((unsigned) (ie - ib + 1) * sizeof(char *));
- if (m == (char **) NULL) return((char **) NULL);
- m -= ib;
- for(i = ib; i <= ie; i++)
- {
- m[i] = (char *) xx_alloc((unsigned) (je - jb + 1) * n);
- if (m[i] == (char *) NULL) return((char **) NULL);
- m[i] -= jb * n;
- }
- return((char **) m);
- }
-
- char **n2_renum(m, ib, ie, jb, je, nib, nie, njb, nje, n)
- char **m;
- int ib, ie, jb, je, nib, nie, njb, nje, n;
- {
- int i;
- index_test(ib, ie);
- index_test(jb, je);
- index_test(nib, nie);
- index_test(njb, nje);
- for(i = ie; i >= ib; i--)
- m[i] += (jb - njb) * n;
- m += (ib - nib);
- return((char **) m);
- }
-
- void n2_free(m, ib, ie, jb, je, n)
- char **m;
- int ib, ie, jb, je, n;
- {
- int i;
- index_test(ib, ie);
- index_test(jb, je);
- for(i = ie; i >= ib; i--)
- xx_free((char*) (m[i] + jb * n),
- (unsigned) ((je - jb + 1) * n));
- xx_free((char*) (m + ib), (unsigned) ((ie - ib + 1) * sizeof(char *)));
- return;
- }
-
- void n2_init(m, ib, ie, jb, je, n, nini)
- char **m;
- int ib, ie, jb, je, n;
- void (*nini)();
- {
- int i, j;
- index_test(ib, ie);
- index_test(jb, je);
- if (nini == (void (*)()) NULL)
- return;
- for (i = ib; i <= ie; i++)
- for (j = jb; j <= je; j++)
- (*nini)(&m[i][j*n]);
- return;
- }
-
- void n2_prnt(fp, nprn, m, ib, ie, jb, je, n)
- FILE *fp;
- void (*nprn)();
- char **m;
- int ib, ie, jb, je, n;
- {
- int i, j;
- index_test(ib, ie);
- index_test(jb, je);
- if (nprn == (void (*)()) NULL)
- return;
- for (i = ib; i <= ie; i++)
- for (j = jb; j <= je; j++)
- (*nprn)(fp, &m[i][j*n]);
- return;
- }
-
- char ***n3_alloc(ib, ie, jb, je, kb, ke, n)
- int ib, ie, jb, je, kb, ke, n;
- {
- int i, j;
- char ***m;
- index_test(ib, ie);
- index_test(jb, je);
- index_test(kb, ke);
- m = (char ***) xx_alloc((unsigned) (ie - ib + 1) * sizeof(char **));
- if (m == (char ***) NULL) return((char ***) NULL);
- m -= ib;
- for(i = ib; i <= ie; i++)
- {
- m[i] = (char **) xx_alloc((unsigned) (je - jb + 1) *
- sizeof(char *));
- if (m[i] == (char **) NULL) return((char ***) NULL);
- m[i] -= jb;
- for(j = jb; j <= je; j++)
- {
- m[i][j] = (char *) xx_alloc((unsigned) (ke - kb + 1)
- * n);
- if (m[i][j] == (char *) NULL) return((char ***) NULL);
- m[i][j] -= kb * n;
- }
- }
- return((char ***) m);
- }
-
- char ***n3_renum(m, ib, ie, jb, je, kb, ke, nib, nie, njb, nje, nkb, nke, n)
- char ***m;
- int ib, ie, jb, je, kb, ke, nib, nie, njb, nje, nkb, nke, n;
- {
- int i, j;
- index_test(ib, ie);
- index_test(jb, je);
- index_test(kb, ke);
- index_test(nib, nie);
- index_test(njb, nje);
- index_test(nkb, nke);
- for(i = ie; i >= ib; i--)
- for (j = je; j >= jb; j--)
- m[i][j] += (kb - nkb) * n;
- for(i = ie; i >= ib; i--)
- m[i] += (jb - njb);
- m += (ib - nib);
- return((char ***) m);
- }
-
- void n3_free(m, ib, ie, jb, je, kb, ke, n)
- char ***m;
- int ib, ie, jb, je, kb, ke, n;
- {
- int i, j;
- index_test(ib, ie);
- index_test(jb, je);
- index_test(kb, ke);
- for(i = ie; i >= ib; i--)
- for (j = je; j >= jb; j--)
- xx_free((char*) (m[i][j] + kb * n),
- (unsigned) (ke - kb + 1) * n);
- for(i = ie; i >= ib; i--)
- xx_free((char*) (m[i] + jb),
- (unsigned) ((je - jb + 1) * sizeof(char *)));
- xx_free((char*) (m + ib),
- (unsigned) ((ie - ib + 1) * sizeof(char **)));
- return;
- }
-
- void n3_init(m, ib, ie, jb, je, kb, ke, n, nini)
- char ***m;
- int ib, ie, jb, je, kb, ke, n;
- void (*nini)();
- {
- int i, j, k;
- index_test(ib, ie);
- index_test(jb, je);
- index_test(kb, ke);
- if (nini == (void (*)()) NULL)
- return;
- for (i = ib; i <= ie; i++)
- for (j = jb; j <= je; j++)
- for (k = kb; k <= ke; k++)
- (*nini)(&m[i][j][k*n]);
- return;
- }
-
- void n3_prnt(fp, nprn, m, ib, ie, jb, je, kb, ke, n)
- FILE *fp;
- void (*nprn)();
- char ***m;
- int ib, ie, jb, je, kb, ke, n;
- {
- int i, j, k;
- index_test(ib, ie);
- index_test(jb, je);
- index_test(kb, ke);
- if (nprn == (void (*)()) NULL)
- return;
- for (i = ib; i <= ie; i++)
- {
- fprintf(fp, "%d\n", i);
- for (j = jb; j <= je; j++)
- for (k = kb; k <= ke; k++)
- (*nprn)(fp, &m[i][j][k*n]);
- }
- return;
- }
-
-
- /* char allocation */
-
- char *c1_alloc(ib, ie)
- int ib, ie;
- {
- char *m;
- index_test(ib, ie);
- m = (char *) xx_alloc((unsigned) (ie - ib + 1) * sizeof(char));
- if (m == (char *) NULL) return((char *) NULL);
- m -= ib;
- return((char *) m);
- }
-
- char *c1_renum(m, ib, ie, nib, nie)
- char *m;
- int ib, ie, nib, nie;
- {
- index_test(ib, ie);
- index_test(nib, nie);
- m += (ib - nib);
- return((char *) m);
- }
-
- void c1_free(m, ib, ie)
- char *m;
- int ib, ie;
- {
- index_test(ib, ie);
- xx_free((char*) (m + ib), (unsigned) ((ie - ib + 1) * sizeof(char)));
- return;
- }
-
- void c1_init(m, ib, ie, ini)
- char *m;
- int ib, ie;
- char ini;
- {
- int i;
- index_test(ib, ie);
- for (i = ib; i <= ie; i++)
- m[i] = ini;
- return;
- }
-
- void c1_prnt(fp, fmt, m, ib, ie)
- FILE *fp;
- char *fmt;
- char *m;
- int ib, ie;
- {
- int i;
- index_test(ib, ie);
- for (i = ib; i <= ie; i++)
- fprintf(fp, fmt, m[i]);
- fprintf(fp, "\n");
- return;
- }
-
- char **c2_alloc(ib, ie, jb, je)
- int ib, ie, jb, je;
- {
- int i;
- char **m;
- index_test(ib, ie);
- index_test(jb, je);
- m = (char **) xx_alloc((unsigned) (ie - ib + 1) *
- sizeof(char *));
- if (m == (char **) NULL) return((char **) NULL);
- m -= ib;
- for(i = ib; i <= ie; i++)
- {
- m[i] = (char *) xx_alloc((unsigned) (je - jb + 1) *
- sizeof(char));
- if (m[i] == (char *) NULL) return((char **) NULL);
- m[i] -= jb;
- }
- return((char **) m);
- }
-
- char **c2_renum(m, ib, ie, jb, je, nib, nie, njb, nje)
- char **m;
- int ib, ie, jb, je, nib, nie, njb, nje;
- {
- int i;
- index_test(ib, ie);
- index_test(jb, je);
- index_test(nib, nie);
- index_test(njb, nje);
- for(i = ie; i >= ib; i--)
- m[i] += (jb - njb);
- m += (ib - nib);
- return((char **) m);
- }
-
- void c2_free(m, ib, ie, jb, je)
- char **m;
- int ib, ie, jb, je;
- {
- int i;
- index_test(ib, ie);
- index_test(jb, je);
- for(i = ie; i >= ib; i--)
- xx_free((char*) (m[i] + jb),
- (unsigned) ((je - jb + 1) * sizeof(char)));
- xx_free((char*) (m + ib), (unsigned) ((ie - ib + 1) * sizeof(char *)));
- return;
- }
-
- void c2_init(m, ib, ie, jb, je, ini)
- char **m;
- int ib, ie, jb, je;
- char ini;
- {
- int i, j;
- index_test(ib, ie);
- index_test(jb, je);
- for (i = ib; i <= ie; i++)
- for (j = jb; j <= je; j++)
- m[i][j] = ini;
- return;
- }
-
- void c2_prnt(fp, fmt, m, ib, ie, jb, je)
- FILE *fp;
- char *fmt;
- char **m;
- int ib, ie, jb, je;
- {
- int i, j;
- index_test(ib, ie);
- index_test(jb, je);
- for (i = ib; i <= ie; i++)
- {
- for (j = jb; j <= je; j++)
- fprintf(fp, fmt, m[i][j]);
- fprintf(fp, "\n");
- }
- return;
- }
-
- char ***c3_alloc(ib, ie, jb, je, kb, ke)
- int ib, ie, jb, je, kb, ke;
- {
- int i, j;
- char ***m;
- index_test(ib, ie);
- index_test(jb, je);
- index_test(kb, ke);
- m = (char ***) xx_alloc((unsigned) (ie - ib + 1) *
- sizeof(char **));
- if (m == (char ***) NULL) return((char ***) NULL);
- m -= ib;
- for(i = ib; i <= ie; i++)
- {
- m[i] = (char **) xx_alloc((unsigned) (je - jb + 1) *
- sizeof(char *));
- if (m[i] == (char **) NULL) return((char ***) NULL);
- m[i] -= jb;
- for(j = jb; j <= je; j++)
- {
- m[i][j] = (char *) xx_alloc((unsigned) (ke - kb + 1) *
- sizeof(char));
- if (m[i][j] == (char *) NULL) return((char ***) NULL);
- m[i][j] -= kb;
- }
- }
- return((char ***) m);
- }
-
- char ***c3_renum(m, ib, ie, jb, je, kb, ke, nib, nie, njb, nje, nkb, nke)
- char ***m;
- int ib, ie, jb, je, kb, ke, nib, nie, njb, nje, nkb, nke;
- {
- int i, j;
- index_test(ib, ie);
- index_test(jb, je);
- index_test(kb, ke);
- index_test(nib, nie);
- index_test(njb, nje);
- index_test(nkb, nke);
- for(i = ie; i >= ib; i--)
- for (j = je; j >= jb; j--)
- m[i][j] += (kb - nkb);
- for(i = ie; i >= ib; i--)
- m[i] += (jb - njb);
- m += (ib - nib);
- return((char ***) m);
- }
-
- void c3_free(m, ib, ie, jb, je, kb, ke)
- char ***m;
- int ib, ie, jb, je, kb, ke;
- {
- int i, j;
- index_test(ib, ie);
- index_test(jb, je);
- index_test(kb, ke);
- for(i = ie; i >= ib; i--)
- for (j = je; j >= jb; j--)
- xx_free((char*) (m[i][j] + kb),
- (unsigned) ((ke - kb + 1) * sizeof(char)));
- for(i = ie; i >= ib; i--)
- xx_free((char*) (m[i] + jb),
- (unsigned) ((je - jb + 1) * sizeof(char *)));
- xx_free((char*) (m + ib),
- (unsigned) ((ie - ib + 1) * sizeof(char **)));
- return;
- }
-
- void c3_init(m, ib, ie, jb, je, kb, ke, ini)
- char ***m;
- int ib, ie, jb, je, kb, ke;
- char ini;
- {
- int i, j, k;
- index_test(ib, ie);
- index_test(jb, je);
- index_test(kb, ke);
- for (i = ib; i <= ie; i++)
- for (j = jb; j <= je; j++)
- for (k = kb; k <= ke; k++)
- m[i][j][k] = ini;
- return;
- }
-
- void c3_prnt(fp, fmt, m, ib, ie, jb, je, kb, ke)
- FILE *fp;
- char *fmt;
- char ***m;
- int ib, ie, jb, je, kb, ke;
- {
- int i, j, k;
- index_test(ib, ie);
- index_test(jb, je);
- index_test(kb, ke);
- for (i = ib; i <= ie; i++)
- {
- fprintf(fp, "%d\n", i);
- for (j = jb; j <= je; j++)
- {
- for (k = kb; k <= ke; k++)
- fprintf(fp, fmt, m[i][j][k]);
- fprintf(fp, "\n");
- }
- }
- return;
- }
-
-
- /* short allocation */
-
- short *s1_alloc(ib, ie)
- int ib, ie;
- {
- short *m;
- index_test(ib, ie);
- m = (short *) xx_alloc((unsigned) (ie - ib + 1) * sizeof(short));
- if (m == (short *) NULL) return((short *) NULL);
- m -= ib;
- return((short *) m);
- }
-
- short *s1_renum(m, ib, ie, nib, nie)
- short *m;
- int ib, ie, nib, nie;
- {
- index_test(ib, ie);
- index_test(nib, nie);
- m += (ib - nib);
- return((short *) m);
- }
-
- void s1_free(m, ib, ie)
- short *m;
- int ib, ie;
- {
- index_test(ib, ie);
- xx_free((char*) (m + ib), (unsigned) ((ie - ib + 1) * sizeof(short)));
- return;
- }
-
- void s1_init(m, ib, ie, ini)
- short *m;
- int ib, ie;
- short ini;
- {
- int i;
- index_test(ib, ie);
- for (i = ib; i <= ie; i++)
- m[i] = ini;
- return;
- }
-
- void s1_prnt(fp, fmt, m, ib, ie)
- FILE *fp;
- char *fmt;
- short *m;
- int ib, ie;
- {
- int i;
- index_test(ib, ie);
- for (i = ib; i <= ie; i++)
- fprintf(fp, fmt, m[i]);
- fprintf(fp, "\n");
- return;
- }
-
- short **s2_alloc(ib, ie, jb, je)
- int ib, ie, jb, je;
- {
- int i;
- short **m;
- index_test(ib, ie);
- index_test(jb, je);
- m = (short **) xx_alloc((unsigned) (ie - ib + 1) *
- sizeof(short *));
- if (m == (short **) NULL) return((short **) NULL);
- m -= ib;
- for(i = ib; i <= ie; i++)
- {
- m[i] = (short *) xx_alloc((unsigned) (je - jb + 1) *
- sizeof(short));
- if (m[i] == (short *) NULL) return((short **) NULL);
- m[i] -= jb;
- }
- return((short **) m);
- }
-
- short **s2_renum(m, ib, ie, jb, je, nib, nie, njb, nje)
- short **m;
- int ib, ie, jb, je, nib, nie, njb, nje;
- {
- int i;
- index_test(ib, ie);
- index_test(jb, je);
- index_test(nib, nie);
- index_test(njb, nje);
- for(i = ie; i >= ib; i--)
- m[i] += (jb - njb);
- m += (ib - nib);
- return((short **) m);
- }
-
- void s2_free(m, ib, ie, jb, je)
- short **m;
- int ib, ie, jb, je;
- {
- int i;
- index_test(ib, ie);
- index_test(jb, je);
- for(i = ie; i >= ib; i--)
- xx_free((char*) (m[i] + jb),
- (unsigned) ((je - jb + 1) * sizeof(short)));
- xx_free((char*) (m + ib), (unsigned) ((ie - ib + 1) * sizeof(short *)));
- return;
- }
-
- void s2_init(m, ib, ie, jb, je, ini)
- short **m;
- int ib, ie, jb, je;
- short ini;
- {
- int i, j;
- index_test(ib, ie);
- index_test(jb, je);
- for (i = ib; i <= ie; i++)
- for (j = jb; j <= je; j++)
- m[i][j] = ini;
- return;
- }
-
- void s2_prnt(fp, fmt, m, ib, ie, jb, je)
- FILE *fp;
- char *fmt;
- short **m;
- int ib, ie, jb, je;
- {
- int i, j;
- index_test(ib, ie);
- index_test(jb, je);
- for (i = ib; i <= ie; i++)
- {
- for (j = jb; j <= je; j++)
- fprintf(fp, fmt, m[i][j]);
- fprintf(fp, "\n");
- }
- return;
- }
-
- short ***s3_alloc(ib, ie, jb, je, kb, ke)
- int ib, ie, jb, je, kb, ke;
- {
- int i, j;
- short ***m;
- index_test(ib, ie);
- index_test(jb, je);
- index_test(kb, ke);
- m = (short ***) xx_alloc((unsigned) (ie - ib + 1) *
- sizeof(short **));
- if (m == (short ***) NULL) return((short ***) NULL);
- m -= ib;
- for(i = ib; i <= ie; i++)
- {
- m[i] = (short **) xx_alloc((unsigned) (je - jb + 1) *
- sizeof(short *));
- if (m[i] == (short **) NULL) return((short ***) NULL);
- m[i] -= jb;
- for(j = jb; j <= je; j++)
- {
- m[i][j] = (short *) xx_alloc((unsigned) (ke - kb + 1) *
- sizeof(short));
- if (m[i][j] == (short *) NULL) return((short ***) NULL);
- m[i][j] -= kb;
- }
- }
- return((short ***) m);
- }
-
- short ***s3_renum(m, ib, ie, jb, je, kb, ke, nib, nie, njb, nje, nkb, nke)
- short ***m;
- int ib, ie, jb, je, kb, ke, nib, nie, njb, nje, nkb, nke;
- {
- int i, j;
- index_test(ib, ie);
- index_test(jb, je);
- index_test(kb, ke);
- index_test(nib, nie);
- index_test(njb, nje);
- index_test(nkb, nke);
- for(i = ie; i >= ib; i--)
- for (j = je; j >= jb; j--)
- m[i][j] += (kb - nkb);
- for(i = ie; i >= ib; i--)
- m[i] += (jb - njb);
- m += (ib - nib);
- return((short ***) m);
- }
-
- void s3_free(m, ib, ie, jb, je, kb, ke)
- short ***m;
- int ib, ie, jb, je, kb, ke;
- {
- int i, j;
- index_test(ib, ie);
- index_test(jb, je);
- index_test(kb, ke);
- for(i = ie; i >= ib; i--)
- for (j = je; j >= jb; j--)
- xx_free((char*) (m[i][j] + kb),
- (unsigned) ((ke - kb + 1) * sizeof(short)));
- for(i = ie; i >= ib; i--)
- xx_free((char*) (m[i] + jb),
- (unsigned) ((je - jb + 1) * sizeof(short *)));
- xx_free((char*) (m + ib),
- (unsigned) ((ie - ib + 1) * sizeof(short **)));
- return;
- }
-
- void s3_init(m, ib, ie, jb, je, kb, ke, ini)
- short ***m;
- int ib, ie, jb, je, kb, ke;
- short ini;
- {
- int i, j, k;
- index_test(ib, ie);
- index_test(jb, je);
- index_test(kb, ke);
- for (i = ib; i <= ie; i++)
- for (j = jb; j <= je; j++)
- for (k = kb; k <= ke; k++)
- m[i][j][k] = ini;
- return;
- }
-
- void s3_prnt(fp, fmt, m, ib, ie, jb, je, kb, ke)
- FILE *fp;
- char *fmt;
- short ***m;
- int ib, ie, jb, je, kb, ke;
- {
- int i, j, k;
- index_test(ib, ie);
- index_test(jb, je);
- index_test(kb, ke);
- for (i = ib; i <= ie; i++)
- {
- fprintf(fp, "%d\n", i);
- for (j = jb; j <= je; j++)
- {
- for (k = kb; k <= ke; k++)
- fprintf(fp, fmt, m[i][j][k]);
- fprintf(fp, "\n");
- }
- }
- return;
- }
-
-
- /* long allocation */
-
- long *l1_alloc(ib, ie)
- int ib, ie;
- {
- long *m;
- index_test(ib, ie);
- m = (long *) xx_alloc((unsigned) (ie - ib + 1) * sizeof(long));
- if (m == (long *) NULL) return((long *) NULL);
- m -= ib;
- return((long *) m);
- }
-
- long *l1_renum(m, ib, ie, nib, nie)
- long *m;
- int ib, ie, nib, nie;
- {
- index_test(ib, ie);
- index_test(nib, nie);
- m += (ib - nib);
- return((long *) m);
- }
-
- void l1_free(m, ib, ie)
- long *m;
- int ib, ie;
- {
- index_test(ib, ie);
- xx_free((char*) (m + ib), (unsigned) ((ie - ib + 1) * sizeof(long)));
- return;
- }
-
- void l1_init(m, ib, ie, ini)
- long *m;
- int ib, ie;
- long ini;
- {
- int i;
- index_test(ib, ie);
- for (i = ib; i <= ie; i++)
- m[i] = ini;
- return;
- }
-
- void l1_prnt(fp, fmt, m, ib, ie)
- FILE *fp;
- char *fmt;
- long *m;
- int ib, ie;
- {
- int i;
- index_test(ib, ie);
- for (i = ib; i <= ie; i++)
- fprintf(fp, fmt, m[i]);
- fprintf(fp, "\n");
- return;
- }
-
- long **l2_alloc(ib, ie, jb, je)
- int ib, ie, jb, je;
- {
- int i;
- long **m;
- index_test(ib, ie);
- index_test(jb, je);
- m = (long **) xx_alloc((unsigned) (ie - ib + 1) *
- sizeof(long *));
- if (m == (long **) NULL) return((long **) NULL);
- m -= ib;
- for(i = ib; i <= ie; i++)
- {
- m[i] = (long *) xx_alloc((unsigned) (je - jb + 1) *
- sizeof(long));
- if (m[i] == (long *) NULL) return((long **) NULL);
- m[i] -= jb;
- }
- return((long **) m);
- }
-
- long **l2_renum(m, ib, ie, jb, je, nib, nie, njb, nje)
- long **m;
- int ib, ie, jb, je, nib, nie, njb, nje;
- {
- int i;
- index_test(ib, ie);
- index_test(jb, je);
- index_test(nib, nie);
- index_test(njb, nje);
- for(i = ie; i >= ib; i--)
- m[i] += (jb - njb);
- m += (ib - nib);
- return((long **) m);
- }
-
- void l2_free(m, ib, ie, jb, je)
- long **m;
- int ib, ie, jb, je;
- {
- int i;
- index_test(ib, ie);
- index_test(jb, je);
- for(i = ie; i >= ib; i--)
- xx_free((char*) (m[i] + jb),
- (unsigned) ((je - jb + 1) * sizeof(long)));
- xx_free((char*) (m + ib), (unsigned) ((ie - ib + 1) * sizeof(long *)));
- return;
- }
-
- void l2_init(m, ib, ie, jb, je, ini)
- long **m;
- int ib, ie, jb, je;
- long ini;
- {
- int i, j;
- index_test(ib, ie);
- index_test(jb, je);
- for (i = ib; i <= ie; i++)
- for (j = jb; j <= je; j++)
- m[i][j] = ini;
- return;
- }
-
- void l2_prnt(fp, fmt, m, ib, ie, jb, je)
- FILE *fp;
- char *fmt;
- long **m;
- int ib, ie, jb, je;
- {
- int i, j;
- index_test(ib, ie);
- index_test(jb, je);
- for (i = ib; i <= ie; i++)
- {
- for (j = jb; j <= je; j++)
- fprintf(fp, fmt, m[i][j]);
- fprintf(fp, "\n");
- }
- return;
- }
-
- long ***l3_alloc(ib, ie, jb, je, kb, ke)
- int ib, ie, jb, je, kb, ke;
- {
- int i, j;
- long ***m;
- index_test(ib, ie);
- index_test(jb, je);
- index_test(kb, ke);
- m = (long ***) xx_alloc((unsigned) (ie - ib + 1) *
- sizeof(long **));
- if (m == (long ***) NULL) return((long ***) NULL);
- m -= ib;
- for(i = ib; i <= ie; i++)
- {
- m[i] = (long **) xx_alloc((unsigned) (je - jb + 1) *
- sizeof(long *));
- if (m[i] == (long **) NULL) return((long ***) NULL);
- m[i] -= jb;
- for(j = jb; j <= je; j++)
- {
- m[i][j] = (long *) xx_alloc((unsigned) (ke - kb + 1) *
- sizeof(long));
- if (m[i][j] == (long *) NULL) return((long ***) NULL);
- m[i][j] -= kb;
- }
- }
- return((long ***) m);
- }
-
- long ***l3_renum(m, ib, ie, jb, je, kb, ke, nib, nie, njb, nje, nkb, nke)
- long ***m;
- int ib, ie, jb, je, kb, ke, nib, nie, njb, nje, nkb, nke;
- {
- int i, j;
- index_test(ib, ie);
- index_test(jb, je);
- index_test(kb, ke);
- index_test(nib, nie);
- index_test(njb, nje);
- index_test(nkb, nke);
- for(i = ie; i >= ib; i--)
- for (j = je; j >= jb; j--)
- m[i][j] += (kb - nkb);
- for(i = ie; i >= ib; i--)
- m[i] += (jb - njb);
- m += (ib - nib);
- return((long ***) m);
- }
-
- void l3_free(m, ib, ie, jb, je, kb, ke)
- long ***m;
- int ib, ie, jb, je, kb, ke;
- {
- int i, j;
- index_test(ib, ie);
- index_test(jb, je);
- index_test(kb, ke);
- for(i = ie; i >= ib; i--)
- for (j = je; j >= jb; j--)
- xx_free((char*) (m[i][j] + kb),
- (unsigned) ((ke - kb + 1) * sizeof(long)));
- for(i = ie; i >= ib; i--)
- xx_free((char*) (m[i] + jb),
- (unsigned) ((je - jb + 1) * sizeof(long *)));
- xx_free((char*) (m + ib),
- (unsigned) ((ie - ib + 1) * sizeof(long **)));
- return;
- }
-
- void l3_init(m, ib, ie, jb, je, kb, ke, ini)
- long ***m;
- int ib, ie, jb, je, kb, ke;
- long ini;
- {
- int i, j, k;
- index_test(ib, ie);
- index_test(jb, je);
- index_test(kb, ke);
- for (i = ib; i <= ie; i++)
- for (j = jb; j <= je; j++)
- for (k = kb; k <= ke; k++)
- m[i][j][k] = ini;
- return;
- }
-
- void l3_prnt(fp, fmt, m, ib, ie, jb, je, kb, ke)
- FILE *fp;
- char *fmt;
- long ***m;
- int ib, ie, jb, je, kb, ke;
- {
- int i, j, k;
- index_test(ib, ie);
- index_test(jb, je);
- index_test(kb, ke);
- for (i = ib; i <= ie; i++)
- {
- fprintf(fp, "%d\n", i);
- for (j = jb; j <= je; j++)
- {
- for (k = kb; k <= ke; k++)
- fprintf(fp, fmt, m[i][j][k]);
- fprintf(fp, "\n");
- }
- }
- return;
- }
-
-
- /* int allocation */
-
- int *i1_alloc(ib, ie)
- int ib, ie;
- {
- int *m;
- index_test(ib, ie);
- m = (int *) xx_alloc((unsigned) (ie - ib + 1) * sizeof(int));
- if (m == (int *) NULL) return((int *) NULL);
- m -= ib;
- return((int *) m);
- }
-
- int *i1_renum(m, ib, ie, nib, nie)
- int *m;
- int ib, ie, nib, nie;
- {
- index_test(ib, ie);
- index_test(nib, nie);
- m += (ib - nib);
- return((int *) m);
- }
-
- void i1_free(m, ib, ie)
- int *m;
- int ib, ie;
- {
- index_test(ib, ie);
- xx_free((char*) (m + ib), (unsigned) ((ie - ib + 1) * sizeof(int)));
- return;
- }
-
- void i1_init(m, ib, ie, ini)
- int *m;
- int ib, ie;
- int ini;
- {
- int i;
- index_test(ib, ie);
- for (i = ib; i <= ie; i++)
- m[i] = ini;
- return;
- }
-
- void i1_prnt(fp, fmt, m, ib, ie)
- FILE *fp;
- char *fmt;
- int *m;
- int ib, ie;
- {
- int i;
- index_test(ib, ie);
- for (i = ib; i <= ie; i++)
- fprintf(fp, fmt, m[i]);
- fprintf(fp, "\n");
- return;
- }
-
- int **i2_alloc(ib, ie, jb, je)
- int ib, ie, jb, je;
- {
- int i;
- int **m;
- index_test(ib, ie);
- index_test(jb, je);
- m = (int **) xx_alloc((unsigned) (ie - ib + 1) *
- sizeof(int *));
- if (m == (int **) NULL) return((int **) NULL);
- m -= ib;
- for(i = ib; i <= ie; i++)
- {
- m[i] = (int *) xx_alloc((unsigned) (je - jb + 1) *
- sizeof(int));
- if (m[i] == (int *) NULL) return((int **) NULL);
- m[i] -= jb;
- }
- return((int **) m);
- }
-
- int **i2_renum(m, ib, ie, jb, je, nib, nie, njb, nje)
- int **m;
- int ib, ie, jb, je, nib, nie, njb, nje;
- {
- int i;
- index_test(ib, ie);
- index_test(jb, je);
- index_test(nib, nie);
- index_test(njb, nje);
- for(i = ie; i >= ib; i--)
- m[i] += (jb - njb);
- m += (ib - nib);
- return((int **) m);
- }
-
- void i2_free(m, ib, ie, jb, je)
- int **m;
- int ib, ie, jb, je;
- {
- int i;
- index_test(ib, ie);
- index_test(jb, je);
- for(i = ie; i >= ib; i--)
- xx_free((char*) (m[i] + jb),
- (unsigned) ((je - jb + 1) * sizeof(int)));
- xx_free((char*) (m + ib), (unsigned) ((ie - ib + 1) * sizeof(int *)));
- return;
- }
-
- void i2_init(m, ib, ie, jb, je, ini)
- int **m;
- int ib, ie, jb, je;
- int ini;
- {
- int i, j;
- index_test(ib, ie);
- index_test(jb, je);
- for (i = ib; i <= ie; i++)
- for (j = jb; j <= je; j++)
- m[i][j] = ini;
- return;
- }
-
- void i2_prnt(fp, fmt, m, ib, ie, jb, je)
- FILE *fp;
- char *fmt;
- int **m;
- int ib, ie, jb, je;
- {
- int i, j;
- index_test(ib, ie);
- index_test(jb, je);
- for (i = ib; i <= ie; i++)
- {
- for (j = jb; j <= je; j++)
- fprintf(fp, fmt, m[i][j]);
- fprintf(fp, "\n");
- }
- return;
- }
-
- int ***i3_alloc(ib, ie, jb, je, kb, ke)
- int ib, ie, jb, je, kb, ke;
- {
- int i, j;
- int ***m;
- index_test(ib, ie);
- index_test(jb, je);
- index_test(kb, ke);
- m = (int ***) xx_alloc((unsigned) (ie - ib + 1) *
- sizeof(int **));
- if (m == (int ***) NULL) return((int ***) NULL);
- m -= ib;
- for(i = ib; i <= ie; i++)
- {
- m[i] = (int **) xx_alloc((unsigned) (je - jb + 1) *
- sizeof(int *));
- if (m[i] == (int **) NULL) return((int ***) NULL);
- m[i] -= jb;
- for(j = jb; j <= je; j++)
- {
- m[i][j] = (int *) xx_alloc((unsigned) (ke - kb + 1) *
- sizeof(int));
- if (m[i][j] == (int *) NULL) return((int ***) NULL);
- m[i][j] -= kb;
- }
- }
- return((int ***) m);
- }
-
- int ***i3_renum(m, ib, ie, jb, je, kb, ke, nib, nie, njb, nje, nkb, nke)
- int ***m;
- int ib, ie, jb, je, kb, ke, nib, nie, njb, nje, nkb, nke;
- {
- int i, j;
- index_test(ib, ie);
- index_test(jb, je);
- index_test(kb, ke);
- index_test(nib, nie);
- index_test(njb, nje);
- index_test(nkb, nke);
- for(i = ie; i >= ib; i--)
- for (j = je; j >= jb; j--)
- m[i][j] += (kb - nkb);
- for(i = ie; i >= ib; i--)
- m[i] += (jb - njb);
- m += (ib - nib);
- return((int ***) m);
- }
-
- void i3_free(m, ib, ie, jb, je, kb, ke)
- int ***m;
- int ib, ie, jb, je, kb, ke;
- {
- int i, j;
- index_test(ib, ie);
- index_test(jb, je);
- index_test(kb, ke);
- for(i = ie; i >= ib; i--)
- for (j = je; j >= jb; j--)
- xx_free((char*) (m[i][j] + kb),
- (unsigned) ((ke - kb + 1) * sizeof(int)));
- for(i = ie; i >= ib; i--)
- xx_free((char*) (m[i] + jb),
- (unsigned) ((je - jb + 1) * sizeof(int *)));
- xx_free((char*) (m + ib),
- (unsigned) ((ie - ib + 1) * sizeof(int **)));
- return;
- }
-
- void i3_init(m, ib, ie, jb, je, kb, ke, ini)
- int ***m;
- int ib, ie, jb, je, kb, ke;
- int ini;
- {
- int i, j, k;
- index_test(ib, ie);
- index_test(jb, je);
- index_test(kb, ke);
- for (i = ib; i <= ie; i++)
- for (j = jb; j <= je; j++)
- for (k = kb; k <= ke; k++)
- m[i][j][k] = ini;
- return;
- }
-
- void i3_prnt(fp, fmt, m, ib, ie, jb, je, kb, ke)
- FILE *fp;
- char *fmt;
- int ***m;
- int ib, ie, jb, je, kb, ke;
- {
- int i, j, k;
- index_test(ib, ie);
- index_test(jb, je);
- index_test(kb, ke);
- for (i = ib; i <= ie; i++)
- {
- fprintf(fp, "%d\n", i);
- for (j = jb; j <= je; j++)
- {
- for (k = kb; k <= ke; k++)
- fprintf(fp, fmt, m[i][j][k]);
- fprintf(fp, "\n");
- }
- }
- return;
- }
-
-
- /* float allocation */
-
- float *f1_alloc(ib, ie)
- int ib, ie;
- {
- float *m;
- index_test(ib, ie);
- m = (float *) xx_alloc((unsigned) (ie - ib + 1) * sizeof(float));
- if (m == (float *) NULL) return((float *) NULL);
- m -= ib;
- return((float *) m);
- }
-
- float *f1_renum(m, ib, ie, nib, nie)
- float *m;
- int ib, ie, nib, nie;
- {
- index_test(ib, ie);
- index_test(nib, nie);
- m += (ib - nib);
- return((float *) m);
- }
-
- void f1_free(m, ib, ie)
- float *m;
- int ib, ie;
- {
- index_test(ib, ie);
- xx_free((char*) (m + ib), (unsigned) ((ie - ib + 1) * sizeof(float)));
- return;
- }
-
- void f1_init(m, ib, ie, ini)
- float *m;
- int ib, ie;
- float ini;
- {
- int i;
- index_test(ib, ie);
- for (i = ib; i <= ie; i++)
- m[i] = ini;
- return;
- }
-
- void f1_prnt(fp, fmt, m, ib, ie)
- FILE *fp;
- char *fmt;
- float *m;
- int ib, ie;
- {
- int i;
- index_test(ib, ie);
- for (i = ib; i <= ie; i++)
- fprintf(fp, fmt, m[i]);
- fprintf(fp, "\n");
- return;
- }
-
- float **f2_alloc(ib, ie, jb, je)
- int ib, ie, jb, je;
- {
- int i;
- float **m;
- index_test(ib, ie);
- index_test(jb, je);
- m = (float **) xx_alloc((unsigned) (ie - ib + 1) *
- sizeof(float *));
- if (m == (float **) NULL) return((float **) NULL);
- m -= ib;
- for(i = ib; i <= ie; i++)
- {
- m[i] = (float *) xx_alloc((unsigned) (je - jb + 1) *
- sizeof(float));
- if (m[i] == (float *) NULL) return((float **) NULL);
- m[i] -= jb;
- }
- return((float **) m);
- }
-
- float **f2_renum(m, ib, ie, jb, je, nib, nie, njb, nje)
- float **m;
- int ib, ie, jb, je, nib, nie, njb, nje;
- {
- int i;
- index_test(ib, ie);
- index_test(jb, je);
- index_test(nib, nie);
- index_test(njb, nje);
- for(i = ie; i >= ib; i--)
- m[i] += (jb - njb);
- m += (ib - nib);
- return((float **) m);
- }
-
- void f2_free(m, ib, ie, jb, je)
- float **m;
- int ib, ie, jb, je;
- {
- int i;
- index_test(ib, ie);
- index_test(jb, je);
- for(i = ie; i >= ib; i--)
- xx_free((char*) (m[i] + jb),
- (unsigned) ((je - jb + 1) * sizeof(float)));
- xx_free((char*) (m + ib), (unsigned) ((ie - ib + 1) * sizeof(float *)));
- return;
- }
-
- void f2_init(m, ib, ie, jb, je, ini)
- float **m;
- int ib, ie, jb, je;
- float ini;
- {
- int i, j;
- index_test(ib, ie);
- index_test(jb, je);
- for (i = ib; i <= ie; i++)
- for (j = jb; j <= je; j++)
- m[i][j] = ini;
- return;
- }
-
- void f2_prnt(fp, fmt, m, ib, ie, jb, je)
- FILE *fp;
- char *fmt;
- float **m;
- int ib, ie, jb, je;
- {
- int i, j;
- index_test(ib, ie);
- index_test(jb, je);
- for (i = ib; i <= ie; i++)
- {
- for (j = jb; j <= je; j++)
- fprintf(fp, fmt, m[i][j]);
- fprintf(fp, "\n");
- }
- return;
- }
-
- float ***f3_alloc(ib, ie, jb, je, kb, ke)
- int ib, ie, jb, je, kb, ke;
- {
- int i, j;
- float ***m;
- index_test(ib, ie);
- index_test(jb, je);
- index_test(kb, ke);
- m = (float ***) xx_alloc((unsigned) (ie - ib + 1) *
- sizeof(float **));
- if (m == (float ***) NULL) return((float ***) NULL);
- m -= ib;
- for(i = ib; i <= ie; i++)
- {
- m[i] = (float **) xx_alloc((unsigned) (je - jb + 1) *
- sizeof(float *));
- if (m[i] == (float **) NULL) return((float ***) NULL);
- m[i] -= jb;
- for(j = jb; j <= je; j++)
- {
- m[i][j] = (float *) xx_alloc((unsigned) (ke - kb + 1) *
- sizeof(float));
- if (m[i][j] == (float *) NULL) return((float ***) NULL);
- m[i][j] -= kb;
- }
- }
- return((float ***) m);
- }
-
- float ***f3_renum(m, ib, ie, jb, je, kb, ke, nib, nie, njb, nje, nkb, nke)
- float ***m;
- int ib, ie, jb, je, kb, ke, nib, nie, njb, nje, nkb, nke;
- {
- int i, j;
- index_test(ib, ie);
- index_test(jb, je);
- index_test(kb, ke);
- index_test(nib, nie);
- index_test(njb, nje);
- index_test(nkb, nke);
- for(i = ie; i >= ib; i--)
- for (j = je; j >= jb; j--)
- m[i][j] += (kb - nkb);
- for(i = ie; i >= ib; i--)
- m[i] += (jb - njb);
- m += (ib - nib);
- return((float ***) m);
- }
-
- void f3_free(m, ib, ie, jb, je, kb, ke)
- float ***m;
- int ib, ie, jb, je, kb, ke;
- {
- int i, j;
- index_test(ib, ie);
- index_test(jb, je);
- index_test(kb, ke);
- for(i = ie; i >= ib; i--)
- for (j = je; j >= jb; j--)
- xx_free((char*) (m[i][j] + kb),
- (unsigned) ((ke - kb + 1) * sizeof(float)));
- for(i = ie; i >= ib; i--)
- xx_free((char*) (m[i] + jb),
- (unsigned) ((je - jb + 1) * sizeof(float *)));
- xx_free((char*) (m + ib),
- (unsigned) ((ie - ib + 1) * sizeof(float **)));
- return;
- }
-
- void f3_init(m, ib, ie, jb, je, kb, ke, ini)
- float ***m;
- int ib, ie, jb, je, kb, ke;
- float ini;
- {
- int i, j, k;
- index_test(ib, ie);
- index_test(jb, je);
- index_test(kb, ke);
- for (i = ib; i <= ie; i++)
- for (j = jb; j <= je; j++)
- for (k = kb; k <= ke; k++)
- m[i][j][k] = ini;
- return;
- }
-
- void f3_prnt(fp, fmt, m, ib, ie, jb, je, kb, ke)
- FILE *fp;
- char *fmt;
- float ***m;
- int ib, ie, jb, je, kb, ke;
- {
- int i, j, k;
- index_test(ib, ie);
- index_test(jb, je);
- index_test(kb, ke);
- for (i = ib; i <= ie; i++)
- {
- fprintf(fp, "%d\n", i);
- for (j = jb; j <= je; j++)
- {
- for (k = kb; k <= ke; k++)
- fprintf(fp, fmt, m[i][j][k]);
- fprintf(fp, "\n");
- }
- }
- return;
- }
-
-
- /* double allocation */
-
- double *d1_alloc(ib, ie)
- int ib, ie;
- {
- double *m;
- index_test(ib, ie);
- m = (double *) xx_alloc((unsigned) (ie - ib + 1) * sizeof(double));
- if (m == (double *) NULL) return((double *) NULL);
- m -= ib;
- return((double *) m);
- }
-
- double *d1_renum(m, ib, ie, nib, nie)
- double *m;
- int ib, ie, nib, nie;
- {
- index_test(ib, ie);
- index_test(nib, nie);
- m += (ib - nib);
- return((double *) m);
- }
-
- void d1_free(m, ib, ie)
- double *m;
- int ib, ie;
- {
- index_test(ib, ie);
- xx_free((char*) (m + ib), (unsigned) ((ie - ib + 1) * sizeof(double)));
- return;
- }
-
- void d1_init(m, ib, ie, ini)
- double *m;
- int ib, ie;
- double ini;
- {
- int i;
- index_test(ib, ie);
- for (i = ib; i <= ie; i++)
- m[i] = ini;
- return;
- }
-
- void d1_prnt(fp, fmt, m, ib, ie)
- FILE *fp;
- char *fmt;
- double *m;
- int ib, ie;
- {
- int i;
- index_test(ib, ie);
- for (i = ib; i <= ie; i++)
- fprintf(fp, fmt, m[i]);
- fprintf(fp, "\n");
- return;
- }
-
- double **d2_alloc(ib, ie, jb, je)
- int ib, ie, jb, je;
- {
- int i;
- double **m;
- index_test(ib, ie);
- index_test(jb, je);
- m = (double **) xx_alloc((unsigned) (ie - ib + 1) *
- sizeof(double *));
- if (m == (double **) NULL) return((double **) NULL);
- m -= ib;
- for(i = ib; i <= ie; i++)
- {
- m[i] = (double *) xx_alloc((unsigned) (je - jb + 1) *
- sizeof(double));
- if (m[i] == (double *) NULL) return((double **) NULL);
- m[i] -= jb;
- }
- return((double **) m);
- }
-
- double **d2_renum(m, ib, ie, jb, je, nib, nie, njb, nje)
- double **m;
- int ib, ie, jb, je, nib, nie, njb, nje;
- {
- int i;
- index_test(ib, ie);
- index_test(jb, je);
- index_test(nib, nie);
- index_test(njb, nje);
- for(i = ie; i >= ib; i--)
- m[i] += (jb - njb);
- m += (ib - nib);
- return((double **) m);
- }
-
- void d2_free(m, ib, ie, jb, je)
- double **m;
- int ib, ie, jb, je;
- {
- int i;
- index_test(ib, ie);
- index_test(jb, je);
- for(i = ie; i >= ib; i--)
- xx_free((char*) (m[i] + jb),
- (unsigned) ((je - jb + 1) * sizeof(double)));
- xx_free((char*) (m + ib), (unsigned) ((ie - ib + 1) * sizeof(double *)));
- return;
- }
-
- void d2_init(m, ib, ie, jb, je, ini)
- double **m;
- int ib, ie, jb, je;
- double ini;
- {
- int i, j;
- index_test(ib, ie);
- index_test(jb, je);
- for (i = ib; i <= ie; i++)
- for (j = jb; j <= je; j++)
- m[i][j] = ini;
- return;
- }
-
- void d2_prnt(fp, fmt, m, ib, ie, jb, je)
- FILE *fp;
- char *fmt;
- double **m;
- int ib, ie, jb, je;
- {
- int i, j;
- index_test(ib, ie);
- index_test(jb, je);
- for (i = ib; i <= ie; i++)
- {
- for (j = jb; j <= je; j++)
- fprintf(fp, fmt, m[i][j]);
- fprintf(fp, "\n");
- }
- return;
- }
-
- double ***d3_alloc(ib, ie, jb, je, kb, ke)
- int ib, ie, jb, je, kb, ke;
- {
- int i, j;
- double ***m;
- index_test(ib, ie);
- index_test(jb, je);
- index_test(kb, ke);
- m = (double ***) xx_alloc((unsigned) (ie - ib + 1) *
- sizeof(double **));
- if (m == (double ***) NULL) return((double ***) NULL);
- m -= ib;
- for(i = ib; i <= ie; i++)
- {
- m[i] = (double **) xx_alloc((unsigned) (je - jb + 1) *
- sizeof(double *));
- if (m[i] == (double **) NULL) return((double ***) NULL);
- m[i] -= jb;
- for(j = jb; j <= je; j++)
- {
- m[i][j] = (double *) xx_alloc((unsigned) (ke - kb + 1) *
- sizeof(double));
- if (m[i][j] == (double *) NULL) return((double ***) NULL);
- m[i][j] -= kb;
- }
- }
- return((double ***) m);
- }
-
- double ***d3_renum(m, ib, ie, jb, je, kb, ke, nib, nie, njb, nje, nkb, nke)
- double ***m;
- int ib, ie, jb, je, kb, ke, nib, nie, njb, nje, nkb, nke;
- {
- int i, j;
- index_test(ib, ie);
- index_test(jb, je);
- index_test(kb, ke);
- index_test(nib, nie);
- index_test(njb, nje);
- index_test(nkb, nke);
- for(i = ie; i >= ib; i--)
- for (j = je; j >= jb; j--)
- m[i][j] += (kb - nkb);
- for(i = ie; i >= ib; i--)
- m[i] += (jb - njb);
- m += (ib - nib);
- return((double ***) m);
- }
-
- void d3_free(m, ib, ie, jb, je, kb, ke)
- double ***m;
- int ib, ie, jb, je, kb, ke;
- {
- int i, j;
- index_test(ib, ie);
- index_test(jb, je);
- index_test(kb, ke);
- for(i = ie; i >= ib; i--)
- for (j = je; j >= jb; j--)
- xx_free((char*) (m[i][j] + kb),
- (unsigned) ((ke - kb + 1) * sizeof(double)));
- for(i = ie; i >= ib; i--)
- xx_free((char*) (m[i] + jb),
- (unsigned) ((je - jb + 1) * sizeof(double *)));
- xx_free((char*) (m + ib),
- (unsigned) ((ie - ib + 1) * sizeof(double **)));
- return;
- }
-
- void d3_init(m, ib, ie, jb, je, kb, ke, ini)
- double ***m;
- int ib, ie, jb, je, kb, ke;
- double ini;
- {
- int i, j, k;
- index_test(ib, ie);
- index_test(jb, je);
- index_test(kb, ke);
- for (i = ib; i <= ie; i++)
- for (j = jb; j <= je; j++)
- for (k = kb; k <= ke; k++)
- m[i][j][k] = ini;
- return;
- }
-
- void d3_prnt(fp, fmt, m, ib, ie, jb, je, kb, ke)
- FILE *fp;
- char *fmt;
- double ***m;
- int ib, ie, jb, je, kb, ke;
- {
- int i, j, k;
- index_test(ib, ie);
- index_test(jb, je);
- index_test(kb, ke);
- for (i = ib; i <= ie; i++)
- {
- fprintf(fp, "%d\n", i);
- for (j = jb; j <= je; j++)
- {
- for (k = kb; k <= ke; k++)
- fprintf(fp, fmt, m[i][j][k]);
- fprintf(fp, "\n");
- }
- }
- return;
- }
-
-
-