home *** CD-ROM | disk | FTP | other *** search
- ree(matrix);
- error(E_MEM,"m_get");
- }
- else if (mem_info_is_on()) {
- mem_bytes(TYPE_MAT,0,m*n*sizeof(Real));
- }
- #else
- matrix->base = (Real *)NULL;
- #endif
- if ((matrix->me = (Real **)calloc(m,sizeof(Real *))) ==
- (Real **)NULL )
- { free(matrix->base); free(matrix);
- error(E_MEM,"m_get");
- }
- else if (mem_info_is_on()) {
- mem_bytes(TYPE_MAT,0,m*sizeof(Real *));
- }
-
- #ifndef SEGMENTED
- /* set up pointers */
- for ( i=0; i<m; i++ )
- matrix->me[i] = &(matrix->base[i*n]);
- #else
- for ( i = 0; i < m; i++ )
- if ( (matrix->me[i]=NEW_A(n,Real)) == (Real *)NULL )
- error(E_MEM,"m_get");
- else if (mem_info_is_on()) {
- mem_bytes(TYPE_MAT,0,n*sizeof(Real));
- }
- #endif
-
- return (matrix);
- }
-
-
- /* px_get -- gets a PERM of given 'size' by dynamic memory allocation
- -- Note: initialized to the identity permutation */
- PERM *px_get(size)
- int size;
- {
- PERM *permute;
- int i;
-
- if (size < 0)
- error(E_NEG,"px_get");
-
- if ((permute=NEW(PERM)) == (PERM *)NULL )
- error(E_MEM,"px_get");
- else if (mem_info_is_on()) {
- mem_bytes(TYPE_PERM,0,sizeof(PERM));
- mem_numvar(TYPE_PERM,1);
- }
-
- permute->size = permute->max_size = size;
- if ((permute->pe = NEW_A(si