1 #include <../../nrnconf.h>
33 static char rcsid[] =
"zmemory.c,v 1.1 1997/12/04 17:56:13 hines Exp";
58 for (
i = 0;
i <
A->m;
i++ )
81 matrix->
m = m; matrix->
n = matrix->
max_n =
n;
97 { free(matrix->
base); free(matrix);
105 for (
i=0;
i<m;
i++ )
108 for (
i = 0;
i < m;
i++ )
156 if ( mat==(
ZMAT *)
NULL || (
int)(mat->m) < 0 ||
166 free((
char *)(mat->base));
169 for (
i = 0;
i < mat->max_m;
i++ )
174 free((
char *)(mat->me[
i]));
181 free((
char *)(mat->me));
198 if ( vec==(
ZVEC *)
NULL || (
int)(vec->dim) < 0 )
217 free((
char *)vec->ve);
231 u_int i, new_max_m, new_max_n, new_size, old_m, old_n;
233 if (new_m < 0 || new_n < 0)
237 return zm_get(new_m,new_n);
239 if (new_m ==
A->m && new_n ==
A->n)
242 old_m =
A->m; old_n =
A->n;
243 if ( new_m >
A->max_m )
254 new_max_m =
max(new_m,
A->max_m);
255 new_max_n =
max(new_n,
A->max_n);
258 new_size = new_max_m*new_max_n;
259 if ( new_size >
A->max_size )
269 A->max_size = new_size;
273 for (
i = 0;
i < new_m;
i++ )
274 A->me[
i] = &(
A->base[
i*new_n]);
279 for (
i = 1;
i <
min(old_m,new_m);
i++ )
281 (
char *)&(
A->base[
i*new_n]),
284 else if ( old_n < new_n )
286 for (
i =
min(old_m,new_m)-1;
i > 0;
i-- )
289 (
char *)&(
A->base[
i*new_n]),
291 __zzero__(&(
A->base[
i*new_n+old_n]),(new_n-old_n));
297 for (
i = old_m;
i < new_m;
i++ )
300 if (
A->max_n < new_n )
304 for (
i = 0;
i <
A->max_m;
i++ )
317 for (
i =
A->max_m;
i < new_max_m;
i++ )
329 else if (
A->max_m < new_m )
331 for (
i =
A->max_m;
i < new_m;
i++ )
342 for (
i = 0;
i < old_m;
i++ )
347 for (
i = old_m;
i < new_m;
i++ )
351 A->max_m = new_max_m;
352 A->max_n = new_max_n;
353 A->max_size =
A->max_m*
A->max_n;
354 A->m = new_m;
A->n = new_n;
372 if (new_dim == x->dim)
375 if ( x->max_dim == 0 )
378 if ( new_dim > x->max_dim )
388 x->max_dim = new_dim;
391 if ( new_dim > x->dim )
392 __zzero__(&(x->ve[x->dim]),new_dim - x->dim);
425 while ((par = va_arg(ap,
ZVEC **))) {
443 while ((par = va_arg(ap,
ZMAT **))) {
474 va_start(ap, new_dim);
475 while ((par = va_arg(ap,
ZVEC **))) {
493 while ((par = va_arg(ap,
ZMAT **))) {
524 while ((par = va_arg(ap,
ZVEC **))) {
545 while ((par = va_arg(ap,
ZMAT **))) {
580 dim = va_arg(ap,
int);
581 while ((par = va_arg(ap,
ZVEC **))) {
601 while ((par = va_arg(ap,
ZMAT **))) {
633 new_dim = va_arg(ap,
int);
634 while ((par = va_arg(ap,
ZVEC **))) {
653 while ((par = va_arg(ap,
ZMAT **))) {
683 while ((par = va_arg(ap,
ZVEC **))) {
702 while ((par = va_arg(ap,
ZMAT **))) {
#define error(err_num, fn_name)
#define RENEW(var, num, type)
#define mem_numvar(type, num)
#define mem_bytes(type, old_size, new_size)
int const size_t const size_t n
void __zzero__(complex *zp, int len)
int zm_get_vars(int m, int n,...)
int zm_resize_vars(int m, int n,...)
ZVEC * zv_resize(ZVEC *x, int new_dim)
int zv_resize_vars(int new_dim,...)
ZMAT * zm_get(int m, int n)
ZMAT * zm_resize(ZMAT *A, int new_m, int new_n)
int zv_get_vars(int dim,...)
int zv_free_vars(ZVEC **pv,...)
int zm_free_vars(ZMAT **va,...)