/* PFV.c */
#include "../Utilities.h"
/*--------------------------------------------------------------------*/
/*
--------------------------------------------
purpose -- to free a pointer to float vector
must have been created by PFVinit
created -- 95sep22, cca
--------------------------------------------
*/
void
PFVfree (
float **p_fvec
) {
if ( p_fvec != NULL ) {
FREE(p_fvec) ;
}
return ; }
/*--------------------------------------------------------------------*/
/*
---------------------------------------------
purpose -- to allocate and initialize to NULL
a vector of pointer to float
created -- 95sep22, cca
---------------------------------------------
*/
float **
PFVinit (
int size
) {
float **p_fvec = NULL ;
if ( size > 0 ) {
int i ;
ALLOCATE(p_fvec, float *, size) ;
for ( i = 0 ; i < size ; i++ ) {
p_fvec[i] = NULL ;
}
}
return(p_fvec) ; }
/*--------------------------------------------------------------------*/
/*
-------------------------------------
purpose -- to set up a pointer vector
created -- 95sep22, cca
-------------------------------------
*/
void
PFVsetup (
int length,
int sizes[],
float fvec[],
float *p_fvec[]
) {
if ( length > 0 ) {
if ( sizes == NULL || fvec == NULL || p_fvec == NULL ) {
fprintf(stderr, "\n fatal error in PFVsetup, invalid data"
"\n length = %d, sizes = %p, fvec = %p, p_fvec = %p\n",
length, sizes, fvec, p_fvec) ;
exit(-1) ;
} else {
int j ;
for ( j = 0 ; j < length ; j++ ) {
if ( sizes[j] > 0 ) {
p_fvec[j] = fvec ;
fvec += sizes[j] ;
} else {
p_fvec[j] = NULL ;
}
}
}
}
return ; }
/*--------------------------------------------------------------------*/
/*
-----------------------------------
purpose -- to copy a pointer vector
created -- 95sep22, cca
-----------------------------------
*/
void
PFVcopy (
int length,
float *p_fvec1[],
float *p_fvec2[]
) {
if ( length > 0 ) {
if ( p_fvec1 == NULL || p_fvec2 == NULL ) {
fprintf(stdout, "\n fatal error in PFVcopy, invalid data"
"\n length = %d, p_fvec1 = %p, p_fvec2 = %p\n",
length, p_fvec1, p_fvec2) ;
exit(-1) ;
} else {
int j ;
for ( j = 0 ; j < length ; j++ ) {
p_fvec1[j] = p_fvec2[j] ;
}
}
}
return ; }
/*--------------------------------------------------------------------*/
syntax highlighted by Code2HTML, v. 0.9.1