/* -------------------------------------------------------------- sets the maximum numnber of entries. this methods resizes the ivec1[], ivece2[] and dvec[] vectors if newmaxnent != maxnent created -- 98jan28, cca -------------------------------------------------------------- */ void InpMtx_setMaxnent ( InpMtx *inpmtx, int newmaxnent ) { /* --------------- check the input --------------- */ if ( inpmtx == NULL || newmaxnent < 0 ) { fprintf(stderr, "\n fatal error in InpMtx_setMaxnent(%p, %d)" "\n bad input\n", inpmtx, newmaxnent) ; spoolesFatal(); } if ( newmaxnent != inpmtx->maxnent ) { IV_setMaxsize(&(inpmtx->ivec1IV), newmaxnent) ; IV_setMaxsize(&(inpmtx->ivec2IV), newmaxnent) ; if ( INPMTX_IS_REAL_ENTRIES(inpmtx) ) { DV_setMaxsize(&(inpmtx->dvecDV), newmaxnent) ; } else if ( INPMTX_IS_COMPLEX_ENTRIES(inpmtx) ) { DV_setMaxsize(&(inpmtx->dvecDV), 2*newmaxnent) ; } } inpmtx->maxnent = newmaxnent ; return ; }
/* -------------------------- set the size of the vector created -- 96dec08, cca -------------------------- */ void DV_setSize ( DV *dv, int newsize ) { /* --------------- check the input --------------- */ if ( dv == NULL || newsize < 0 ) { fprintf(stderr, "\n fatal error in DV_setSize(%p,%d)" "\n bad input\n", dv, newsize) ; spoolesFatal(); } if ( 0 < dv->maxsize && dv->maxsize < newsize && dv->owned == 0 ) { fprintf(stderr, "\n fatal error in DV_setSize(%p,%d)" "\n dv->maxsize = %d, newsize = %d, dv->owned = %d\n", dv, newsize, dv->maxsize, newsize, dv->owned) ; spoolesFatal(); } if ( dv->maxsize < newsize ) { /* ------------------------------------------------------------- new size requested is more than maxsize, set new maximum size ------------------------------------------------------------- */ DV_setMaxsize(dv, newsize) ; } dv->size = newsize ; return ; }
/* -------------------------------------- push an entry onto the list created -- 95oct06, cca -------------------------------------- */ void DV_push ( DV *dv, double val ) { if ( dv == NULL ) { fprintf(stderr, "\n fatal error in DV_push(%p,%f)" "\n bad input\n", dv, val) ; exit(-1) ; } if ( dv->size == dv->maxsize ) { if ( dv->maxsize > 0 ) { DV_setMaxsize(dv, 2*dv->maxsize) ; } else { DV_setMaxsize(dv, 10) ; } } dv->vec[dv->size++] = val ; return ; }