1 #include <../../nrnconf.h>
33 static char rcsid[] =
"ivecop.c,v 1.1 1997/12/04 17:55:30 hines Exp";
74 if ( iv->ive == (
int *)
NULL ) {
87 free((
char *)iv->ive);
108 if (new_dim == iv->dim)
111 if ( new_dim > iv->max_dim )
115 new_dim*
sizeof(
int));
117 iv->ive =
RENEW(iv->ive,new_dim,
int);
120 iv->max_dim = new_dim;
122 if ( iv->dim <= new_dim )
123 for (
i = iv->dim;
i < new_dim;
i++ )
140 for (
i = 0;
i < in->dim;
i++ )
141 out->ive[
i] = in->ive[
i];
156 if ( i0 < 0 || dim0 < 0 || i1 < 0 ||
160 if ( (! out) || i1+dim0 > out->dim )
163 MEM_COPY(&(in->ive[i0]),&(out->ive[i1]),dim0*
sizeof(
int));
173 int *out_ive, *iv1_ive, *iv2_ive;
177 if ( iv1->dim != iv2->dim )
179 if ( out==
IVNULL || out->dim != iv1->dim )
186 for (
i = 0;
i < iv1->dim;
i++ )
187 out_ive[
i] = iv1_ive[
i] + iv2_ive[
i];
199 int *out_ive, *iv1_ive, *iv2_ive;
203 if ( iv1->dim != iv2->dim )
205 if ( out==
IVNULL || out->dim != iv1->dim )
212 for (
i = 0;
i < iv1->dim;
i++ )
213 out_ive[
i] = iv1_ive[
i] - iv2_ive[
i];
232 for (
i = 0;
i < iv->
dim;
i++ )
251 if ( isatty(fileno(
fp)) )
272 fprintf(stderr,
"IntVector: dim: ");
275 }
while ( sscanf(
line,
"%u",&dim)<1 || dim>
MAXDIM );
280 for (
i=0;
i<dim;
i++ )
289 if ( (*
line ==
'b' || *
line ==
'B') &&
i > 0 )
290 {
i--; dynamic =
FALSE;
goto redo; }
291 if ( (*
line ==
'f' || *
line ==
'F') &&
i < dim-1 )
292 {
i++; dynamic =
FALSE;
goto redo; }
293 }
while ( *
line==
'\0' || sscanf(
line,
"%d",&iv->
ive[
i]) < 1 );
308 if ((io_code=fscanf(
fp,
" IntVector: dim:%u",&dim)) < 1 ||
310 error(io_code==EOF ? 7 : 6,
"biv_finput");
318 for (
i=0;
i<dim;
i++ )
319 if ((io_code=fscanf(
fp,
"%d",&iv->
ive[
i])) < 1 )
320 error(io_code==EOF ? 7 : 6,
"biv_finput");
365 int dim,
i,
j, l, r, tmp_i;
384 l = 0; r = dim-1;
v = x_ive[0];
395 while ( x_ive[++
i] <
v )
398 while ( x_ive[
j] >
v &&
j != 0 )
419 order->pe[r] = tmp_i;
static double order(void *v)
#define error(err_num, fn_name)
PERM * px_ident(PERM *px)
void iv_foutput(FILE *fp, IVEC *iv)
IVEC * biv_finput(FILE *fp, IVEC *iv)
IVEC * iv_resize(IVEC *iv, int new_dim)
IVEC * iv_sub(IVEC *iv1, IVEC *iv2, IVEC *out)
IVEC * iiv_finput(FILE *fp, IVEC *iv)
static char line[MAXLINE]
IVEC * iv_sort(IVEC *x, PERM *order)
IVEC * iv_move(IVEC *in, int i0, int dim0, IVEC *out, int i1)
IVEC * iv_finput(FILE *fp, IVEC *x)
void iv_dump(FILE *fp, IVEC *iv)
IVEC * iv_copy(IVEC *in, IVEC *out)
IVEC * iv_add(IVEC *iv1, IVEC *iv2, IVEC *out)
PERM * px_resize(PERM *, int)
#define RENEW(var, num, type)
#define mem_numvar(type, num)
#define mem_bytes(type, old_size, new_size)