1 /* linalgdata - allocation support for basic linear algebra routines. */
2 /* Copyright (c) 1990, by Luke Tierney */
12 extern PTR
la_allocate();
14 /************************************************************************/
16 /** Storage Allocation Functions **/
18 /************************************************************************/
20 static char *allocate(n
, m
)
23 char *p
= (char *) la_allocate(n
, m
);
24 if (p
== nil
) xlfail("allocation failed");
31 if (p
!= nil
) la_free_alloc((PTR
) p
);
37 return((IVector
) allocate(n
, sizeof(int)));
43 return((RVector
) allocate(n
, sizeof(double)));
49 return((CVector
) allocate(n
, sizeof(Complex
)));
52 free_vector(v
) Vector v
; { free_alloc(v
); }
58 IMatrix mat
= (IMatrix
) allocate(n
, sizeof(IVector
));
59 for (i
= 0; i
< n
; i
++) mat
[i
] = (IVector
) allocate(m
, sizeof(int));
67 RMatrix mat
= (RMatrix
) allocate(n
, sizeof(RVector
));
68 for (i
= 0; i
< n
; i
++) mat
[i
] = (RVector
) allocate(m
, sizeof(double));
76 CMatrix mat
= (CMatrix
) allocate(n
, sizeof(CVector
));
77 for (i
= 0; i
< n
; i
++) mat
[i
] = (CVector
) allocate(m
, sizeof(Complex
));
87 if (mat
!= nil
) for (i
= 0; i
< n
; i
++) free_alloc(mat
[i
]);