SWZ: replace free with swzFree
parent
bf38d85c04
commit
7aeb61b0f8
|
@ -57,7 +57,7 @@ mexFunction(int nlhs, mxArray *plhs[],
|
||||||
strncpy(args[nargs++], beginarg, n);
|
strncpy(args[nargs++], beginarg, n);
|
||||||
beginarg += (isspace(beginarg[n]) || isblank(beginarg[n]) ? ++n : n);
|
beginarg += (isspace(beginarg[n]) || isblank(beginarg[n]) ? ++n : n);
|
||||||
}
|
}
|
||||||
free(argument);
|
swzFree(argument);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Call top_level function (formerly main)
|
* Call top_level function (formerly main)
|
||||||
|
@ -68,6 +68,6 @@ mexFunction(int nlhs, mxArray *plhs[],
|
||||||
* free memory
|
* free memory
|
||||||
*/
|
*/
|
||||||
for (n=0; n<nargs; n++)
|
for (n=0; n<nargs; n++)
|
||||||
free(args[n]);
|
swzFree(args[n]);
|
||||||
free(args);
|
swzFree(args);
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,12 +25,11 @@ extern int constant_seed;
|
||||||
|
|
||||||
#define swz_fprintf_stdout mexPrintf
|
#define swz_fprintf_stdout mexPrintf
|
||||||
|
|
||||||
#undef free
|
|
||||||
|
|
||||||
#define swzMalloc mxMalloc
|
#define swzMalloc mxMalloc
|
||||||
#define swzCalloc mxCalloc
|
#define swzCalloc mxCalloc
|
||||||
#define swzRealloc mxRealloc
|
#define swzRealloc mxRealloc
|
||||||
#define free mxFree
|
#define swzFree mxFree
|
||||||
|
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
@ -38,4 +37,5 @@ extern int constant_seed;
|
||||||
#define swzMalloc malloc
|
#define swzMalloc malloc
|
||||||
#define swzCalloc calloc
|
#define swzCalloc calloc
|
||||||
#define swzRealloc realloc
|
#define swzRealloc realloc
|
||||||
|
#define swzFree free
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -93,7 +93,7 @@ void FreeMarkovStateVariable(TMarkovStateVariable *sv)
|
||||||
dw_FreeArray(sv->Prior_ba);
|
dw_FreeArray(sv->Prior_ba);
|
||||||
}
|
}
|
||||||
|
|
||||||
free(sv);
|
swzFree(sv);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*******************************************************************************/
|
/*******************************************************************************/
|
||||||
|
@ -176,7 +176,7 @@ TMarkovStateVariable* CreateMarkovStateVariable_Single(int nstates, int nobs, TM
|
||||||
{
|
{
|
||||||
sv->b[k]=CreateVector(FreeDim[k]);
|
sv->b[k]=CreateVector(FreeDim[k]);
|
||||||
/* // seting up non-standard memory management ansi-c*/
|
/* // seting up non-standard memory management ansi-c*/
|
||||||
free(pElementV(sv->b[k]));
|
swzFree(pElementV(sv->b[k]));
|
||||||
pElementV(sv->b[k])=pElementV(sv->B)+q;
|
pElementV(sv->b[k])=pElementV(sv->B)+q;
|
||||||
q+=FreeDim[k];
|
q+=FreeDim[k];
|
||||||
}
|
}
|
||||||
|
@ -196,7 +196,7 @@ TMarkovStateVariable* CreateMarkovStateVariable_Single(int nstates, int nobs, TM
|
||||||
{
|
{
|
||||||
sv->Prior_b[k]=CreateVector(FreeDim[k]);
|
sv->Prior_b[k]=CreateVector(FreeDim[k]);
|
||||||
/* // seting up non-standard memory management ansi-c*/
|
/* // seting up non-standard memory management ansi-c*/
|
||||||
free(pElementV(sv->Prior_b[k]));
|
swzFree(pElementV(sv->Prior_b[k]));
|
||||||
pElementV(sv->Prior_b[k])=pElementV(sv->Prior_B)+q;
|
pElementV(sv->Prior_b[k])=pElementV(sv->Prior_B)+q;
|
||||||
q+=FreeDim[k];
|
q+=FreeDim[k];
|
||||||
}
|
}
|
||||||
|
@ -603,7 +603,7 @@ TMarkovStateVariable* RestrictMarkovStateVariable(TMarkovStateVariable *sv, int
|
||||||
FreeMatrix(MQ);
|
FreeMatrix(MQ);
|
||||||
dw_FreeArray(NonZeroIndex);
|
dw_FreeArray(NonZeroIndex);
|
||||||
dw_FreeArray(FreeDim);
|
dw_FreeArray(FreeDim);
|
||||||
free(free_translation);
|
swzFree(free_translation);
|
||||||
|
|
||||||
return rsv;
|
return rsv;
|
||||||
}
|
}
|
||||||
|
@ -1391,13 +1391,13 @@ void FreeStateModel(TStateModel *model)
|
||||||
{
|
{
|
||||||
if (model->routines->pDestructor)
|
if (model->routines->pDestructor)
|
||||||
model->routines->pDestructor(model->theta);
|
model->routines->pDestructor(model->theta);
|
||||||
free(model->routines);
|
swzFree(model->routines);
|
||||||
}
|
}
|
||||||
FreeMarkovStateVariable(model->sv);
|
FreeMarkovStateVariable(model->sv);
|
||||||
dw_FreeArray(model->V);
|
dw_FreeArray(model->V);
|
||||||
dw_FreeArray(model->Z);
|
dw_FreeArray(model->Z);
|
||||||
dw_FreeArray(model->states_count);
|
dw_FreeArray(model->states_count);
|
||||||
free(model);
|
swzFree(model);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*******************************************************************************/
|
/*******************************************************************************/
|
||||||
|
@ -1732,7 +1732,7 @@ int NormalizeStates(TStateModel *model)
|
||||||
/* if (Permute_SV(p,model->sv)) */
|
/* if (Permute_SV(p,model->sv)) */
|
||||||
/* if (model->routiens->pPermuteTheta(p,model)) */
|
/* if (model->routiens->pPermuteTheta(p,model)) */
|
||||||
/* rtrn=1; */
|
/* rtrn=1; */
|
||||||
/* free(p); */
|
/* swzFree(p); */
|
||||||
/* } */
|
/* } */
|
||||||
|
|
||||||
/* return rtrn; */
|
/* return rtrn; */
|
||||||
|
@ -2975,7 +2975,7 @@ void FreeParameters(TParameters *p)
|
||||||
if (p)
|
if (p)
|
||||||
{
|
{
|
||||||
if (p->pParameterDestructor) p->pParameterDestructor(p->p);
|
if (p->pParameterDestructor) p->pParameterDestructor(p->p);
|
||||||
free(p);
|
swzFree(p);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -568,7 +568,7 @@ TStateModel* CreateStateModel(TMarkovStateVariable *sv, TParameters *p);
|
||||||
techniques are used and the following must be true.
|
techniques are used and the following must be true.
|
||||||
|
|
||||||
All of pElementV(BA[i]), pElementM(QA[i]), and pElementIV(SA[i]) were
|
All of pElementV(BA[i]), pElementM(QA[i]), and pElementIV(SA[i]) were
|
||||||
allocated with swzMalloc(), can be freed with free(), and none of
|
allocated with swzMalloc(), can be freed with swzFree(), and none of
|
||||||
FreeVector(BA[i]), FreeMatrix(QA[i]), or FreeIntMatrix(SA[i]) attempt
|
FreeVector(BA[i]), FreeMatrix(QA[i]), or FreeIntMatrix(SA[i]) attempt
|
||||||
to free pElemementV(BA[i]), pElementM(QA[i]), or pElementIV(SA[i]) if
|
to free pElemementV(BA[i]), pElementM(QA[i]), or pElementIV(SA[i]) if
|
||||||
these are null pointers.
|
these are null pointers.
|
||||||
|
|
|
@ -19,7 +19,7 @@ static int NumberFreeParameters_Theta=0;
|
||||||
|
|
||||||
void SetupObjectiveFunction(TStateModel *model, PRECISION *Modified, PRECISION *FreeQ, PRECISION *FreeTheta)
|
void SetupObjectiveFunction(TStateModel *model, PRECISION *Modified, PRECISION *FreeQ, PRECISION *FreeTheta)
|
||||||
{
|
{
|
||||||
if (buffer) free(buffer);
|
if (buffer) swzFree(buffer);
|
||||||
Model=model;
|
Model=model;
|
||||||
FreeParameters_Q=FreeQ;
|
FreeParameters_Q=FreeQ;
|
||||||
NumberFreeParameters_Q=NumberFreeParametersQ(model);
|
NumberFreeParameters_Q=NumberFreeParametersQ(model);
|
||||||
|
@ -30,7 +30,7 @@ void SetupObjectiveFunction(TStateModel *model, PRECISION *Modified, PRECISION *
|
||||||
|
|
||||||
void SetupObjectiveFunction_new(TStateModel *model, int FreeTheta_Idx, int FreeQ_Idx, int Modified_Idx)
|
void SetupObjectiveFunction_new(TStateModel *model, int FreeTheta_Idx, int FreeQ_Idx, int Modified_Idx)
|
||||||
{
|
{
|
||||||
if (buffer) free(buffer);
|
if (buffer) swzFree(buffer);
|
||||||
Model=model;
|
Model=model;
|
||||||
NumberFreeParameters_Q=NumberFreeParametersQ(model);
|
NumberFreeParameters_Q=NumberFreeParametersQ(model);
|
||||||
NumberFreeParameters_Theta=model->routines->pNumberFreeParametersTheta(model);
|
NumberFreeParameters_Theta=model->routines->pNumberFreeParametersTheta(model);
|
||||||
|
|
|
@ -46,8 +46,8 @@ static void ReadError(char *idformat, char *trailer, int error)
|
||||||
idbuffer=idformat;
|
idbuffer=idformat;
|
||||||
sprintf(errmsg=(char*)swzMalloc(strlen(format)+strlen(idbuffer)-1),format,idbuffer);
|
sprintf(errmsg=(char*)swzMalloc(strlen(format)+strlen(idbuffer)-1),format,idbuffer);
|
||||||
dw_UserError(errmsg);
|
dw_UserError(errmsg);
|
||||||
free(errmsg);
|
swzFree(errmsg);
|
||||||
if (idbuffer != idformat) free(idbuffer);
|
if (idbuffer != idformat) swzFree(idbuffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -70,7 +70,7 @@ static int SetFilePosition(FILE *f_in, char *format, char *str)
|
||||||
else
|
else
|
||||||
buffer=format;
|
buffer=format;
|
||||||
rtrn=dw_SetFilePosition(f_in,buffer);
|
rtrn=dw_SetFilePosition(f_in,buffer);
|
||||||
if (buffer != format) free(buffer);
|
if (buffer != format) swzFree(buffer);
|
||||||
return rtrn;
|
return rtrn;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -168,7 +168,7 @@ TMarkovStateVariable* ReadMarkovSpecification_SV(FILE *f_in, char *idstring, int
|
||||||
sprintf(idstring_new+j,"[%d]",i+1);
|
sprintf(idstring_new+j,"[%d]",i+1);
|
||||||
if (!(sv_array[i]=ReadMarkovSpecification_SV(f_in,idstring_new,nobs))) break;
|
if (!(sv_array[i]=ReadMarkovSpecification_SV(f_in,idstring_new,nobs))) break;
|
||||||
}
|
}
|
||||||
free(idstring_new);
|
swzFree(idstring_new);
|
||||||
if (i == n_state_variables)
|
if (i == n_state_variables)
|
||||||
sv=CreateMarkovStateVariable_Multiple(nobs,n_state_variables,sv_array);
|
sv=CreateMarkovStateVariable_Multiple(nobs,n_state_variables,sv_array);
|
||||||
else
|
else
|
||||||
|
@ -247,7 +247,7 @@ TMarkovStateVariable* ReadMarkovSpecification_SV(FILE *f_in, char *idstring, int
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (err) ReadError(idformat,trailer,err);
|
if (err) ReadError(idformat,trailer,err);
|
||||||
if (trailer) free(trailer);
|
if (trailer) swzFree(trailer);
|
||||||
return sv;
|
return sv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -285,11 +285,11 @@ int WriteMarkovSpecification_SV(FILE *f_out, TMarkovStateVariable *sv, char *ids
|
||||||
sprintf(idbuffer+j,"[%d]",i+1);
|
sprintf(idbuffer+j,"[%d]",i+1);
|
||||||
if (!WriteMarkovSpecification_SV(f_out,sv->state_variable[i],idbuffer))
|
if (!WriteMarkovSpecification_SV(f_out,sv->state_variable[i],idbuffer))
|
||||||
{
|
{
|
||||||
free(idbuffer);
|
swzFree(idbuffer);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
free(idbuffer);
|
swzFree(idbuffer);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -319,7 +319,7 @@ int WriteMarkovSpecification_SV(FILE *f_out, TMarkovStateVariable *sv, char *ids
|
||||||
fprintf(f_out,"//******************************************//\n\n");
|
fprintf(f_out,"//******************************************//\n\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
free(trailer);
|
swzFree(trailer);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -387,11 +387,11 @@ int ReadTransitionMatrices_SV(FILE *f_in, TMarkovStateVariable* sv, char *header
|
||||||
sprintf(idbuffer+j,"[%d]",i+1);
|
sprintf(idbuffer+j,"[%d]",i+1);
|
||||||
if (!ReadTransitionMatrices_SV(f_in,sv->state_variable[i],header,idbuffer))
|
if (!ReadTransitionMatrices_SV(f_in,sv->state_variable[i],header,idbuffer))
|
||||||
{
|
{
|
||||||
free(idbuffer);
|
swzFree(idbuffer);
|
||||||
return sv->valid_transition_matrix=0;
|
return sv->valid_transition_matrix=0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
free(idbuffer);
|
swzFree(idbuffer);
|
||||||
MatrixTensor(sv->Q,sv->QA);
|
MatrixTensor(sv->Q,sv->QA);
|
||||||
return sv->valid_transition_matrix=1;
|
return sv->valid_transition_matrix=1;
|
||||||
}
|
}
|
||||||
|
@ -404,12 +404,12 @@ int ReadTransitionMatrices_SV(FILE *f_in, TMarkovStateVariable* sv, char *header
|
||||||
if (err=ReadMatrix(f_in,idbuffer,(char*)NULL,sv->Q))
|
if (err=ReadMatrix(f_in,idbuffer,(char*)NULL,sv->Q))
|
||||||
if (!idstring[0])
|
if (!idstring[0])
|
||||||
{
|
{
|
||||||
free(idbuffer);
|
swzFree(idbuffer);
|
||||||
idstring="[1]";
|
idstring="[1]";
|
||||||
sprintf(idbuffer=(char*)swzMalloc(strlen(header) + strlen(format) + strlen(idstring) - 3),format,header,idstring);
|
sprintf(idbuffer=(char*)swzMalloc(strlen(header) + strlen(format) + strlen(idstring) - 3),format,header,idstring);
|
||||||
err=ReadMatrix(f_in,idbuffer,(char*)NULL,sv->Q);
|
err=ReadMatrix(f_in,idbuffer,(char*)NULL,sv->Q);
|
||||||
}
|
}
|
||||||
free(idbuffer);
|
swzFree(idbuffer);
|
||||||
if (!err)
|
if (!err)
|
||||||
{
|
{
|
||||||
/* // Scale the columns of Q - loose requirement on sumation to one ansi-c*/
|
/* // Scale the columns of Q - loose requirement on sumation to one ansi-c*/
|
||||||
|
@ -510,11 +510,11 @@ int ReadBaseTransitionMatrices_SV(FILE *f_in, TMarkovStateVariable* sv, char *he
|
||||||
sprintf(idbuffer+j,"[%d]",i+1);
|
sprintf(idbuffer+j,"[%d]",i+1);
|
||||||
if (!ReadBaseTransitionMatrices_SV(f_in,sv->state_variable[i],header,idbuffer))
|
if (!ReadBaseTransitionMatrices_SV(f_in,sv->state_variable[i],header,idbuffer))
|
||||||
{
|
{
|
||||||
free(idbuffer);
|
swzFree(idbuffer);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
free(idbuffer);
|
swzFree(idbuffer);
|
||||||
MatrixTensor(sv->Q,sv->QA);
|
MatrixTensor(sv->Q,sv->QA);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -528,12 +528,12 @@ int ReadBaseTransitionMatrices_SV(FILE *f_in, TMarkovStateVariable* sv, char *he
|
||||||
if (err=ReadMatrix(f_in,idbuffer,(char*)NULL,Q))
|
if (err=ReadMatrix(f_in,idbuffer,(char*)NULL,Q))
|
||||||
if (!idstring[0])
|
if (!idstring[0])
|
||||||
{
|
{
|
||||||
free(idbuffer);
|
swzFree(idbuffer);
|
||||||
idstring="[1]";
|
idstring="[1]";
|
||||||
sprintf(idbuffer=(char*)swzMalloc(strlen(header) + strlen(format) + strlen(idstring) - 3),format,header,idstring);
|
sprintf(idbuffer=(char*)swzMalloc(strlen(header) + strlen(format) + strlen(idstring) - 3),format,header,idstring);
|
||||||
err=ReadMatrix(f_in,idbuffer,(char*)NULL,Q);
|
err=ReadMatrix(f_in,idbuffer,(char*)NULL,Q);
|
||||||
}
|
}
|
||||||
free(idbuffer);
|
swzFree(idbuffer);
|
||||||
if (!err)
|
if (!err)
|
||||||
{
|
{
|
||||||
/* // Scale the columns of Q - loose requirement on sumation to one ansi-c*/
|
/* // Scale the columns of Q - loose requirement on sumation to one ansi-c*/
|
||||||
|
@ -612,7 +612,7 @@ int WriteTransitionMatrices_SV(FILE *f_out, TMarkovStateVariable* sv, char *head
|
||||||
sprintf(idbuffer+j,"[%d]",i+1);
|
sprintf(idbuffer+j,"[%d]",i+1);
|
||||||
WriteTransitionMatrices_SV(f_out,sv->state_variable[i],header,idbuffer);
|
WriteTransitionMatrices_SV(f_out,sv->state_variable[i],header,idbuffer);
|
||||||
}
|
}
|
||||||
free(idbuffer);
|
swzFree(idbuffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -663,7 +663,7 @@ int WriteBaseTransitionMatrices_SV(FILE *f_out, TMarkovStateVariable* sv, char *
|
||||||
sprintf(idbuffer+j,"[%d]",i+1);
|
sprintf(idbuffer+j,"[%d]",i+1);
|
||||||
WriteBaseTransitionMatrices_SV(f_out,sv->state_variable[i],header,idbuffer);
|
WriteBaseTransitionMatrices_SV(f_out,sv->state_variable[i],header,idbuffer);
|
||||||
}
|
}
|
||||||
free(idbuffer);
|
swzFree(idbuffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -702,7 +702,7 @@ void WriteBaseTransitionMatricesFlat_Headers_SV(FILE *f_out, TMarkovStateVariabl
|
||||||
sprintf(idbuffer+j,"[%d]",i+1);
|
sprintf(idbuffer+j,"[%d]",i+1);
|
||||||
WriteBaseTransitionMatricesFlat_Headers_SV(f_out,sv->state_variable[i],idbuffer);
|
WriteBaseTransitionMatricesFlat_Headers_SV(f_out,sv->state_variable[i],idbuffer);
|
||||||
}
|
}
|
||||||
free(idbuffer);
|
swzFree(idbuffer);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -78,7 +78,7 @@ int main(int nargs, char **args)
|
||||||
/* //=== Open header file and print headers ansi-c*/
|
/* //=== Open header file and print headers ansi-c*/
|
||||||
filename=CreateFilenameFromTag("%sheader_%s.dat",cmd->out_tag,cmd->out_directory);
|
filename=CreateFilenameFromTag("%sheader_%s.dat",cmd->out_tag,cmd->out_directory);
|
||||||
f_out=fopen(filename,"wt");
|
f_out=fopen(filename,"wt");
|
||||||
free(filename);
|
swzFree(filename);
|
||||||
WriteBaseTransitionMatricesFlat_Headers_SV(f_out,model->sv,"");
|
WriteBaseTransitionMatricesFlat_Headers_SV(f_out,model->sv,"");
|
||||||
Write_VAR_ParametersFlat_Headers(f_out,model);
|
Write_VAR_ParametersFlat_Headers(f_out,model);
|
||||||
fprintf(f_out,"\n");
|
fprintf(f_out,"\n");
|
||||||
|
@ -87,7 +87,7 @@ int main(int nargs, char **args)
|
||||||
/* //=== Open output file ansi-c*/
|
/* //=== Open output file ansi-c*/
|
||||||
filename=CreateFilenameFromTag("%sdraws_%s.dat",cmd->out_tag,cmd->out_directory);
|
filename=CreateFilenameFromTag("%sdraws_%s.dat",cmd->out_tag,cmd->out_directory);
|
||||||
f_out=fopen(filename,"wt");
|
f_out=fopen(filename,"wt");
|
||||||
free(filename);
|
swzFree(filename);
|
||||||
|
|
||||||
/* // Burn-in period with calibration of jumping parameters ansi-c*/
|
/* // Burn-in period with calibration of jumping parameters ansi-c*/
|
||||||
printf("Calibrating jumping parameters - %d draws\n",tuning);
|
printf("Calibrating jumping parameters - %d draws\n",tuning);
|
||||||
|
|
|
@ -152,7 +152,7 @@ void FreeTheta_VAR(T_VAR_Parameters *p)
|
||||||
dw_FreeArray(p->X);
|
dw_FreeArray(p->X);
|
||||||
|
|
||||||
/* // Free pointer ansi-c*/
|
/* // Free pointer ansi-c*/
|
||||||
free(p);
|
swzFree(p);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -340,7 +340,7 @@ T_VAR_Parameters* CreateTheta_VAR(int flag, int nvars, int nlags, int nexg, int
|
||||||
for (j=nvars-1; j >= 0; j--)
|
for (j=nvars-1; j >= 0; j--)
|
||||||
{
|
{
|
||||||
p->constant[j]=CreateVector(p->n_coef_states[j]);
|
p->constant[j]=CreateVector(p->n_coef_states[j]);
|
||||||
free(pElementV(p->constant[j]));
|
swzFree(pElementV(p->constant[j]));
|
||||||
pElementV(p->constant[j])=pElementV(p->psi[j]) + npre - 1;
|
pElementV(p->constant[j])=pElementV(p->psi[j]) + npre - 1;
|
||||||
}
|
}
|
||||||
/* //-------------------------------------- ansi-c*/
|
/* //-------------------------------------- ansi-c*/
|
||||||
|
@ -632,8 +632,8 @@ int **ExpandTranslationTable(int **table, TMarkovStateVariable *sv, TMarkovState
|
||||||
for (k=nstates-1; k >= 0; k--)
|
for (k=nstates-1; k >= 0; k--)
|
||||||
rtable[j][k]=idx[table[j][master[k]]];
|
rtable[j][k]=idx[table[j][master[k]]];
|
||||||
}
|
}
|
||||||
free(master);
|
swzFree(master);
|
||||||
free(idx);
|
swzFree(idx);
|
||||||
|
|
||||||
/* // verbose ansi-c*/
|
/* // verbose ansi-c*/
|
||||||
/* //dw_PrintArray(stdout,rtable,(char*)NULL); printf("\n"); dw_PrintArray(stdout,table,(char*)NULL); getchar(); ansi-c*/
|
/* //dw_PrintArray(stdout,rtable,(char*)NULL); printf("\n"); dw_PrintArray(stdout,table,(char*)NULL); getchar(); ansi-c*/
|
||||||
|
@ -1311,7 +1311,7 @@ void AdaptiveMetropolisScale(TStateModel *model, int iterations, int period, int
|
||||||
Adaptive=(struct TAdaptive***)dw_CreateArray_array(p->nvars);
|
Adaptive=(struct TAdaptive***)dw_CreateArray_array(p->nvars);
|
||||||
for (j=p->nvars-1; j >= 0; j--)
|
for (j=p->nvars-1; j >= 0; j--)
|
||||||
{
|
{
|
||||||
Adaptive[j]=(struct TAdaptive**)dw_CreateArray_pointer(p->n_coef_states[j],free);
|
Adaptive[j]=(struct TAdaptive**)dw_CreateArray_pointer(p->n_coef_states[j],swzFree);
|
||||||
for (k=p->n_coef_states[j]-1; k >= 0; k--)
|
for (k=p->n_coef_states[j]-1; k >= 0; k--)
|
||||||
{
|
{
|
||||||
Adaptive[j][k]=((struct TAdaptive*)swzMalloc(sizeof(struct TAdaptive)));
|
Adaptive[j][k]=((struct TAdaptive*)swzMalloc(sizeof(struct TAdaptive)));
|
||||||
|
|
|
@ -22,7 +22,7 @@ static void ReadError_VARio(char *id)
|
||||||
char *errmsg, *fmt="Error after line identifier ""%s""";
|
char *errmsg, *fmt="Error after line identifier ""%s""";
|
||||||
sprintf(errmsg=(char*)swzMalloc(strlen(fmt) + strlen(id) - 1),fmt,id);
|
sprintf(errmsg=(char*)swzMalloc(strlen(fmt) + strlen(id) - 1),fmt,id);
|
||||||
dw_UserError(errmsg);
|
dw_UserError(errmsg);
|
||||||
free(errmsg);
|
swzFree(errmsg);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ReadInteger_VARio(FILE *f_in, char *id)
|
static int ReadInteger_VARio(FILE *f_in, char *id)
|
||||||
|
@ -65,7 +65,7 @@ static FILE* OpenFile_VARio(FILE *f, char *filename)
|
||||||
{
|
{
|
||||||
sprintf(errmsg=(char*)swzMalloc(strlen(fmt) + strlen(filename) - 1),fmt,filename);
|
sprintf(errmsg=(char*)swzMalloc(strlen(fmt) + strlen(filename) - 1),fmt,filename);
|
||||||
dw_UserError(errmsg);
|
dw_UserError(errmsg);
|
||||||
free(errmsg);
|
swzFree(errmsg);
|
||||||
}
|
}
|
||||||
return f;
|
return f;
|
||||||
}
|
}
|
||||||
|
@ -129,7 +129,7 @@ TStateModel* Read_VAR_Specification(FILE *f, char *filename)
|
||||||
fmt="//== U[%d] ==//";
|
fmt="//== U[%d] ==//";
|
||||||
sprintf(id=(char*)swzMalloc(strlen(fmt) + strlen_int(j+1) - 1),fmt,j+1);
|
sprintf(id=(char*)swzMalloc(strlen(fmt) + strlen_int(j+1) - 1),fmt,j+1);
|
||||||
ReadMatrix_VARio(f_in,id,U[j]=CreateMatrix(nvars,IV[j]));
|
ReadMatrix_VARio(f_in,id,U[j]=CreateMatrix(nvars,IV[j]));
|
||||||
free(id);
|
swzFree(id);
|
||||||
}
|
}
|
||||||
dw_FreeArray(IV);
|
dw_FreeArray(IV);
|
||||||
|
|
||||||
|
@ -142,7 +142,7 @@ TStateModel* Read_VAR_Specification(FILE *f, char *filename)
|
||||||
fmt="//== V[%d] ==//";
|
fmt="//== V[%d] ==//";
|
||||||
sprintf(id=(char*)swzMalloc(strlen(fmt) + strlen_int(j+1) - 1),fmt,j+1);
|
sprintf(id=(char*)swzMalloc(strlen(fmt) + strlen_int(j+1) - 1),fmt,j+1);
|
||||||
ReadMatrix_VARio(f_in,id,V[j]=CreateMatrix(npre,IV[j]));
|
ReadMatrix_VARio(f_in,id,V[j]=CreateMatrix(npre,IV[j]));
|
||||||
free(id);
|
swzFree(id);
|
||||||
}
|
}
|
||||||
dw_FreeArray(IV);
|
dw_FreeArray(IV);
|
||||||
|
|
||||||
|
@ -155,7 +155,7 @@ TStateModel* Read_VAR_Specification(FILE *f, char *filename)
|
||||||
fmt="//== W[%d] ==//";
|
fmt="//== W[%d] ==//";
|
||||||
sprintf(id=(char*)swzMalloc(strlen(fmt) + strlen_int(j+1) - 1),fmt,j+1);
|
sprintf(id=(char*)swzMalloc(strlen(fmt) + strlen_int(j+1) - 1),fmt,j+1);
|
||||||
ReadMatrix_VARio(f_in,id,W[j]=CreateMatrix(npre,nvars));
|
ReadMatrix_VARio(f_in,id,W[j]=CreateMatrix(npre,nvars));
|
||||||
free(id);
|
swzFree(id);
|
||||||
}
|
}
|
||||||
dw_FreeArray(IV);
|
dw_FreeArray(IV);
|
||||||
|
|
||||||
|
@ -169,7 +169,7 @@ TStateModel* Read_VAR_Specification(FILE *f, char *filename)
|
||||||
fmt="//== Variance of Gaussian prior on column %d of A0 ==//";
|
fmt="//== Variance of Gaussian prior on column %d of A0 ==//";
|
||||||
sprintf(id=(char*)swzMalloc(strlen(fmt) + strlen_int(j+1) - 1),fmt,j+1);
|
sprintf(id=(char*)swzMalloc(strlen(fmt) + strlen_int(j+1) - 1),fmt,j+1);
|
||||||
ReadMatrix_VARio(f_in,id,A0_prior[j]=CreateMatrix(nvars,nvars));
|
ReadMatrix_VARio(f_in,id,A0_prior[j]=CreateMatrix(nvars,nvars));
|
||||||
free(id);
|
swzFree(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
Aplus_prior=dw_CreateArray_matrix(nvars);
|
Aplus_prior=dw_CreateArray_matrix(nvars);
|
||||||
|
@ -178,7 +178,7 @@ TStateModel* Read_VAR_Specification(FILE *f, char *filename)
|
||||||
fmt="//== Variance of Gaussian prior on column %d of Aplus ==//";
|
fmt="//== Variance of Gaussian prior on column %d of Aplus ==//";
|
||||||
sprintf(id=(char*)swzMalloc(strlen(fmt) + strlen_int(j+1) - 1),fmt,j+1);
|
sprintf(id=(char*)swzMalloc(strlen(fmt) + strlen_int(j+1) - 1),fmt,j+1);
|
||||||
ReadMatrix_VARio(f_in,id,Aplus_prior[j]=CreateMatrix(npre,npre));
|
ReadMatrix_VARio(f_in,id,Aplus_prior[j]=CreateMatrix(npre,npre));
|
||||||
free(id);
|
swzFree(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* //=== Specification ===// ansi-c*/
|
/* //=== Specification ===// ansi-c*/
|
||||||
|
@ -423,30 +423,30 @@ int Read_VAR_Parameters(FILE *f, char *filename, char *header, TStateModel *mode
|
||||||
if (!dw_SetFilePosition(f_in,idbuffer) || !dw_ReadMatrix(f_in,A0[s]=CreateMatrix(p->nvars,p->nvars)))
|
if (!dw_SetFilePosition(f_in,idbuffer) || !dw_ReadMatrix(f_in,A0[s]=CreateMatrix(p->nvars,p->nvars)))
|
||||||
{
|
{
|
||||||
ReadError_VARio(idbuffer);
|
ReadError_VARio(idbuffer);
|
||||||
free(idbuffer);
|
swzFree(idbuffer);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
free(idbuffer);
|
swzFree(idbuffer);
|
||||||
|
|
||||||
fmt="//== %sAplus[%d] ==//";
|
fmt="//== %sAplus[%d] ==//";
|
||||||
sprintf(idbuffer=(char*)swzMalloc(strlen(fmt)+strlen(header)+strlen_int(s+1)-3),fmt,header,s+1);
|
sprintf(idbuffer=(char*)swzMalloc(strlen(fmt)+strlen(header)+strlen_int(s+1)-3),fmt,header,s+1);
|
||||||
if (!dw_SetFilePosition(f_in,idbuffer) || !dw_ReadMatrix(f_in,Aplus[s]=CreateMatrix(p->npre,p->nvars)))
|
if (!dw_SetFilePosition(f_in,idbuffer) || !dw_ReadMatrix(f_in,Aplus[s]=CreateMatrix(p->npre,p->nvars)))
|
||||||
{
|
{
|
||||||
ReadError_VARio(idbuffer);
|
ReadError_VARio(idbuffer);
|
||||||
free(idbuffer);
|
swzFree(idbuffer);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
free(idbuffer);
|
swzFree(idbuffer);
|
||||||
|
|
||||||
fmt="//== %sZeta[%d] ==//";
|
fmt="//== %sZeta[%d] ==//";
|
||||||
sprintf(idbuffer=(char*)swzMalloc(strlen(fmt)+strlen(header)+strlen_int(s+1)-3),fmt,header,s+1);
|
sprintf(idbuffer=(char*)swzMalloc(strlen(fmt)+strlen(header)+strlen_int(s+1)-3),fmt,header,s+1);
|
||||||
if (!dw_SetFilePosition(f_in,idbuffer) || !dw_ReadMatrix(f_in,Zeta[s]=CreateMatrix(p->nvars,p->nvars)))
|
if (!dw_SetFilePosition(f_in,idbuffer) || !dw_ReadMatrix(f_in,Zeta[s]=CreateMatrix(p->nvars,p->nvars)))
|
||||||
{
|
{
|
||||||
ReadError_VARio(idbuffer);
|
ReadError_VARio(idbuffer);
|
||||||
free(idbuffer);
|
swzFree(idbuffer);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
free(idbuffer);
|
swzFree(idbuffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* // Set A0, Aplus, and Zeta ansi-c*/
|
/* // Set A0, Aplus, and Zeta ansi-c*/
|
||||||
|
@ -679,7 +679,7 @@ void ReadAllParameters(FILE *f, char *filename, char *id, TStateModel *model)
|
||||||
|
|
||||||
sprintf(buffer=(char*)swzMalloc(strlen(fmt) + strlen(id) - 1),fmt,id);
|
sprintf(buffer=(char*)swzMalloc(strlen(fmt) + strlen(id) - 1),fmt,id);
|
||||||
ReadArray_VARio(f_in,buffer,model->sv->S);
|
ReadArray_VARio(f_in,buffer,model->sv->S);
|
||||||
free(buffer);
|
swzFree(buffer);
|
||||||
|
|
||||||
ReadTransitionMatrices(f_in,(char*)NULL,id,model);
|
ReadTransitionMatrices(f_in,(char*)NULL,id,model);
|
||||||
Read_VAR_Parameters(f_in,(char*)NULL,id,model);
|
Read_VAR_Parameters(f_in,(char*)NULL,id,model);
|
||||||
|
|
|
@ -15,7 +15,7 @@ static int ReadError_VARio_matlab(char *id)
|
||||||
char *errmsg, *fmt="Error after line identifier ""%s""";
|
char *errmsg, *fmt="Error after line identifier ""%s""";
|
||||||
sprintf(errmsg=(char*)swzMalloc(strlen(fmt) + strlen(id) - 1),fmt,id);
|
sprintf(errmsg=(char*)swzMalloc(strlen(fmt) + strlen(id) - 1),fmt,id);
|
||||||
dw_UserError(errmsg);
|
dw_UserError(errmsg);
|
||||||
free(errmsg);
|
swzFree(errmsg);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -195,17 +195,17 @@ void Free_VARCommandLine(TVARCommandLine *cmd)
|
||||||
{
|
{
|
||||||
if (cmd)
|
if (cmd)
|
||||||
{
|
{
|
||||||
if (cmd->out_directory) free(cmd->out_directory);
|
if (cmd->out_directory) swzFree(cmd->out_directory);
|
||||||
if (cmd->in_directory) free(cmd->in_directory);
|
if (cmd->in_directory) swzFree(cmd->in_directory);
|
||||||
if (cmd->in_tag) free(cmd->in_tag);
|
if (cmd->in_tag) swzFree(cmd->in_tag);
|
||||||
if (cmd->out_tag) free(cmd->out_tag);
|
if (cmd->out_tag) swzFree(cmd->out_tag);
|
||||||
if (cmd->out_header) free(cmd->out_header);
|
if (cmd->out_header) swzFree(cmd->out_header);
|
||||||
if (cmd->specification_filename) free(cmd->specification_filename);
|
if (cmd->specification_filename) swzFree(cmd->specification_filename);
|
||||||
if (cmd->parameters_filename) free(cmd->parameters_filename);
|
if (cmd->parameters_filename) swzFree(cmd->parameters_filename);
|
||||||
if (cmd->parameters_header) free(cmd->parameters_header);
|
if (cmd->parameters_header) swzFree(cmd->parameters_header);
|
||||||
if (cmd->specification_filename_actual) free(cmd->specification_filename_actual);
|
if (cmd->specification_filename_actual) swzFree(cmd->specification_filename_actual);
|
||||||
if (cmd->parameters_filename_actual) free(cmd->parameters_filename_actual);
|
if (cmd->parameters_filename_actual) swzFree(cmd->parameters_filename_actual);
|
||||||
if (cmd->parameters_header_actual) free(cmd->parameters_header_actual);
|
if (cmd->parameters_header_actual) swzFree(cmd->parameters_header_actual);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -296,7 +296,7 @@ TStateModel* CreateTStateModelFromEstimateFinal(int nargs, char **args, TVARComm
|
||||||
filename=CreateFilenameFromTag("%s%s",cmd->specification_filename,cmd->in_directory);
|
filename=CreateFilenameFromTag("%s%s",cmd->specification_filename,cmd->in_directory);
|
||||||
if (!(model=Read_VAR_Specification((FILE*)NULL,filename)))
|
if (!(model=Read_VAR_Specification((FILE*)NULL,filename)))
|
||||||
{
|
{
|
||||||
free(filename);
|
swzFree(filename);
|
||||||
return (TStateModel*)NULL;
|
return (TStateModel*)NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -306,14 +306,14 @@ TStateModel* CreateTStateModelFromEstimateFinal(int nargs, char **args, TVARComm
|
||||||
filename=CreateFilenameFromTag("%sest_final_%s.dat",cmd->in_tag,cmd->in_directory);
|
filename=CreateFilenameFromTag("%sest_final_%s.dat",cmd->in_tag,cmd->in_directory);
|
||||||
if (!(model=Read_VAR_Specification((FILE*)NULL,filename)))
|
if (!(model=Read_VAR_Specification((FILE*)NULL,filename)))
|
||||||
{
|
{
|
||||||
free(filename);
|
swzFree(filename);
|
||||||
return (TStateModel*)NULL;
|
return (TStateModel*)NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return (TStateModel*)NULL;
|
return (TStateModel*)NULL;
|
||||||
|
|
||||||
if (cmd->specification_filename_actual) free(cmd->specification_filename_actual);
|
if (cmd->specification_filename_actual) swzFree(cmd->specification_filename_actual);
|
||||||
cmd->specification_filename_actual=filename;
|
cmd->specification_filename_actual=filename;
|
||||||
|
|
||||||
filename=(cmd->parameters_filename)
|
filename=(cmd->parameters_filename)
|
||||||
|
@ -323,14 +323,14 @@ TStateModel* CreateTStateModelFromEstimateFinal(int nargs, char **args, TVARComm
|
||||||
if (!ReadTransitionMatrices((FILE*)NULL,filename,cmd->parameters_header,model)
|
if (!ReadTransitionMatrices((FILE*)NULL,filename,cmd->parameters_header,model)
|
||||||
|| !Read_VAR_Parameters((FILE*)NULL,filename,cmd->parameters_header,model))
|
|| !Read_VAR_Parameters((FILE*)NULL,filename,cmd->parameters_header,model))
|
||||||
{
|
{
|
||||||
free(filename);
|
swzFree(filename);
|
||||||
FreeStateModel(model);
|
FreeStateModel(model);
|
||||||
return (TStateModel*)NULL;
|
return (TStateModel*)NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cmd->parameters_filename_actual) free(cmd->parameters_filename_actual);
|
if (cmd->parameters_filename_actual) swzFree(cmd->parameters_filename_actual);
|
||||||
cmd->parameters_filename_actual=filename;
|
cmd->parameters_filename_actual=filename;
|
||||||
if (cmd->parameters_header_actual) free(cmd->parameters_header_actual);
|
if (cmd->parameters_header_actual) swzFree(cmd->parameters_header_actual);
|
||||||
cmd->parameters_header_actual=dw_DuplicateString(cmd->parameters_header);
|
cmd->parameters_header_actual=dw_DuplicateString(cmd->parameters_header);
|
||||||
|
|
||||||
return model;
|
return model;
|
||||||
|
@ -358,7 +358,7 @@ int GetLastIteration(TStateModel *model, TVARCommandLine *cmd)
|
||||||
filename=CreateFilenameFromTag("%sest_intermediate_%s.dat",cmd->in_tag,cmd->in_directory);
|
filename=CreateFilenameFromTag("%sest_intermediate_%s.dat",cmd->in_tag,cmd->in_directory);
|
||||||
if (!(f_in=fopen(filename,"rt")))
|
if (!(f_in=fopen(filename,"rt")))
|
||||||
{
|
{
|
||||||
free(filename);
|
swzFree(filename);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -372,7 +372,7 @@ int GetLastIteration(TStateModel *model, TVARCommandLine *cmd)
|
||||||
&& Read_VAR_Parameters(f_in,(char*)NULL,header,model))
|
&& Read_VAR_Parameters(f_in,(char*)NULL,header,model))
|
||||||
{
|
{
|
||||||
cont=1;
|
cont=1;
|
||||||
free(header);
|
swzFree(header);
|
||||||
k++;
|
k++;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -387,9 +387,9 @@ int GetLastIteration(TStateModel *model, TVARCommandLine *cmd)
|
||||||
sprintf(header=(char*)swzMalloc(strlen(fmt) + i - 1),fmt,k);
|
sprintf(header=(char*)swzMalloc(strlen(fmt) + i - 1),fmt,k);
|
||||||
if (ReadTransitionMatrices(f_in,(char*)NULL,header,model) && Read_VAR_Parameters(f_in,(char*)NULL,header,model))
|
if (ReadTransitionMatrices(f_in,(char*)NULL,header,model) && Read_VAR_Parameters(f_in,(char*)NULL,header,model))
|
||||||
{
|
{
|
||||||
if (cmd->parameters_filename_actual) free(cmd->parameters_filename_actual);
|
if (cmd->parameters_filename_actual) swzFree(cmd->parameters_filename_actual);
|
||||||
cmd->parameters_filename_actual=filename;
|
cmd->parameters_filename_actual=filename;
|
||||||
if (cmd->parameters_header_actual) free(cmd->parameters_header_actual);
|
if (cmd->parameters_header_actual) swzFree(cmd->parameters_header_actual);
|
||||||
cmd->parameters_header_actual=header;
|
cmd->parameters_header_actual=header;
|
||||||
dw_SetTerminalErrors(terminal_errors);
|
dw_SetTerminalErrors(terminal_errors);
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -400,16 +400,16 @@ int GetLastIteration(TStateModel *model, TVARCommandLine *cmd)
|
||||||
header="Initial: ";
|
header="Initial: ";
|
||||||
if (ReadTransitionMatrices(f_in,(char*)NULL,header,model) && Read_VAR_Parameters(f_in,(char*)NULL,header,model))
|
if (ReadTransitionMatrices(f_in,(char*)NULL,header,model) && Read_VAR_Parameters(f_in,(char*)NULL,header,model))
|
||||||
{
|
{
|
||||||
if (cmd->parameters_filename_actual) free(cmd->parameters_filename_actual);
|
if (cmd->parameters_filename_actual) swzFree(cmd->parameters_filename_actual);
|
||||||
cmd->parameters_filename_actual=filename;
|
cmd->parameters_filename_actual=filename;
|
||||||
if (cmd->parameters_header_actual) free(cmd->parameters_header_actual);
|
if (cmd->parameters_header_actual) swzFree(cmd->parameters_header_actual);
|
||||||
cmd->parameters_header_actual=dw_DuplicateString(header);
|
cmd->parameters_header_actual=dw_DuplicateString(header);
|
||||||
dw_SetTerminalErrors(terminal_errors);
|
dw_SetTerminalErrors(terminal_errors);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
free(filename);
|
swzFree(filename);
|
||||||
dw_SetTerminalErrors(terminal_errors);
|
dw_SetTerminalErrors(terminal_errors);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -452,7 +452,7 @@ TStateModel* CreateTStateModelForEstimate(int nargs, char **args, TVARCommandLin
|
||||||
filename=CreateFilenameFromTag("%s%s",cmd->specification_filename,cmd->in_directory);
|
filename=CreateFilenameFromTag("%s%s",cmd->specification_filename,cmd->in_directory);
|
||||||
if (!(model=Read_VAR_Specification((FILE*)NULL,filename)))
|
if (!(model=Read_VAR_Specification((FILE*)NULL,filename)))
|
||||||
{
|
{
|
||||||
free(filename);
|
swzFree(filename);
|
||||||
dw_SetTerminalErrors(terminal_errors);
|
dw_SetTerminalErrors(terminal_errors);
|
||||||
return (TStateModel*)NULL;
|
return (TStateModel*)NULL;
|
||||||
}
|
}
|
||||||
|
@ -463,11 +463,11 @@ TStateModel* CreateTStateModelForEstimate(int nargs, char **args, TVARCommandLin
|
||||||
filename=CreateFilenameFromTag("%sest_final_%s.dat",cmd->in_tag,cmd->in_directory);
|
filename=CreateFilenameFromTag("%sest_final_%s.dat",cmd->in_tag,cmd->in_directory);
|
||||||
if (!(model=Read_VAR_Specification((FILE*)NULL,filename)))
|
if (!(model=Read_VAR_Specification((FILE*)NULL,filename)))
|
||||||
{
|
{
|
||||||
free(filename);
|
swzFree(filename);
|
||||||
filename=CreateFilenameFromTag("%sinit_%s.dat",cmd->in_tag,cmd->in_directory);
|
filename=CreateFilenameFromTag("%sinit_%s.dat",cmd->in_tag,cmd->in_directory);
|
||||||
if (!(model=Read_VAR_Specification((FILE*)NULL,filename)))
|
if (!(model=Read_VAR_Specification((FILE*)NULL,filename)))
|
||||||
{
|
{
|
||||||
free(filename);
|
swzFree(filename);
|
||||||
dw_SetTerminalErrors(terminal_errors);
|
dw_SetTerminalErrors(terminal_errors);
|
||||||
return (TStateModel*)NULL;
|
return (TStateModel*)NULL;
|
||||||
}
|
}
|
||||||
|
@ -479,7 +479,7 @@ TStateModel* CreateTStateModelForEstimate(int nargs, char **args, TVARCommandLin
|
||||||
return (TStateModel*)NULL;
|
return (TStateModel*)NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cmd->specification_filename_actual) free(cmd->specification_filename_actual);
|
if (cmd->specification_filename_actual) swzFree(cmd->specification_filename_actual);
|
||||||
cmd->specification_filename_actual=filename;
|
cmd->specification_filename_actual=filename;
|
||||||
|
|
||||||
if (cmd->parameters_filename)
|
if (cmd->parameters_filename)
|
||||||
|
@ -489,7 +489,7 @@ TStateModel* CreateTStateModelForEstimate(int nargs, char **args, TVARCommandLin
|
||||||
if (!ReadTransitionMatrices((FILE*)NULL,filename,header,model)
|
if (!ReadTransitionMatrices((FILE*)NULL,filename,header,model)
|
||||||
|| !Read_VAR_Parameters((FILE*)NULL,filename,header,model))
|
|| !Read_VAR_Parameters((FILE*)NULL,filename,header,model))
|
||||||
{
|
{
|
||||||
free(filename);
|
swzFree(filename);
|
||||||
FreeStateModel(model);
|
FreeStateModel(model);
|
||||||
dw_SetTerminalErrors(terminal_errors);
|
dw_SetTerminalErrors(terminal_errors);
|
||||||
return (TStateModel*)NULL;
|
return (TStateModel*)NULL;
|
||||||
|
@ -503,7 +503,7 @@ TStateModel* CreateTStateModelForEstimate(int nargs, char **args, TVARCommandLin
|
||||||
if (!ReadTransitionMatrices((FILE*)NULL,filename,header,model)
|
if (!ReadTransitionMatrices((FILE*)NULL,filename,header,model)
|
||||||
|| !Read_VAR_Parameters((FILE*)NULL,filename,header,model))
|
|| !Read_VAR_Parameters((FILE*)NULL,filename,header,model))
|
||||||
{
|
{
|
||||||
free(filename);
|
swzFree(filename);
|
||||||
FreeStateModel(model);
|
FreeStateModel(model);
|
||||||
dw_SetTerminalErrors(terminal_errors);
|
dw_SetTerminalErrors(terminal_errors);
|
||||||
return (TStateModel*)NULL;
|
return (TStateModel*)NULL;
|
||||||
|
@ -517,7 +517,7 @@ TStateModel* CreateTStateModelForEstimate(int nargs, char **args, TVARCommandLin
|
||||||
if (!ReadTransitionMatrices((FILE*)NULL,filename,header,model)
|
if (!ReadTransitionMatrices((FILE*)NULL,filename,header,model)
|
||||||
|| !Read_VAR_Parameters((FILE*)NULL,filename,header,model))
|
|| !Read_VAR_Parameters((FILE*)NULL,filename,header,model))
|
||||||
{
|
{
|
||||||
free(filename);
|
swzFree(filename);
|
||||||
if (GetLastIteration(model,cmd))
|
if (GetLastIteration(model,cmd))
|
||||||
{
|
{
|
||||||
dw_SetTerminalErrors(terminal_errors);
|
dw_SetTerminalErrors(terminal_errors);
|
||||||
|
@ -538,9 +538,9 @@ TStateModel* CreateTStateModelForEstimate(int nargs, char **args, TVARCommandLin
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cmd->parameters_filename_actual) free(cmd->parameters_filename_actual);
|
if (cmd->parameters_filename_actual) swzFree(cmd->parameters_filename_actual);
|
||||||
cmd->parameters_filename_actual=filename;
|
cmd->parameters_filename_actual=filename;
|
||||||
if (cmd->parameters_header_actual) free(cmd->parameters_header_actual);
|
if (cmd->parameters_header_actual) swzFree(cmd->parameters_header_actual);
|
||||||
cmd->parameters_header_actual=dw_DuplicateString(header);
|
cmd->parameters_header_actual=dw_DuplicateString(header);
|
||||||
|
|
||||||
dw_SetTerminalErrors(terminal_errors);
|
dw_SetTerminalErrors(terminal_errors);
|
||||||
|
|
|
@ -145,7 +145,7 @@ void FindMode_VAR_csminwel(TStateModel *model, TEstimateInfo *estimate)
|
||||||
sprintf(header=(char*)swzMalloc(strlen(fmt) + i - 1),fmt,total_iteration);
|
sprintf(header=(char*)swzMalloc(strlen(fmt) + i - 1),fmt,total_iteration);
|
||||||
WriteTransitionMatrices(f_out,(char*)NULL,header,model);
|
WriteTransitionMatrices(f_out,(char*)NULL,header,model);
|
||||||
Write_VAR_Parameters(f_out,(char*)NULL,header,model);
|
Write_VAR_Parameters(f_out,(char*)NULL,header,model);
|
||||||
free(header);
|
swzFree(header);
|
||||||
fflush(f_out);
|
fflush(f_out);
|
||||||
|
|
||||||
if (estimate->type == FIND_POSTERIOR_MODE)
|
if (estimate->type == FIND_POSTERIOR_MODE)
|
||||||
|
@ -194,7 +194,7 @@ void FindMode_VAR_csminwel(TStateModel *model, TEstimateInfo *estimate)
|
||||||
sprintf(header=(char*)swzMalloc(strlen(fmt) + i - 1),fmt,total_iteration);
|
sprintf(header=(char*)swzMalloc(strlen(fmt) + i - 1),fmt,total_iteration);
|
||||||
WriteTransitionMatrices(f_out,(char*)NULL,header,model);
|
WriteTransitionMatrices(f_out,(char*)NULL,header,model);
|
||||||
Write_VAR_Parameters(f_out,(char*)NULL,header,model);
|
Write_VAR_Parameters(f_out,(char*)NULL,header,model);
|
||||||
free(header);
|
swzFree(header);
|
||||||
fflush(f_out);
|
fflush(f_out);
|
||||||
|
|
||||||
if (estimate->type == FIND_POSTERIOR_MODE)
|
if (estimate->type == FIND_POSTERIOR_MODE)
|
||||||
|
@ -204,7 +204,7 @@ void FindMode_VAR_csminwel(TStateModel *model, TEstimateInfo *estimate)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* //=== Free memory === ansi-c*/
|
/* //=== Free memory === ansi-c*/
|
||||||
free(x);
|
swzFree(x);
|
||||||
dw_FreeArray(block);
|
dw_FreeArray(block);
|
||||||
|
|
||||||
/* //=== Close File === ansi-c*/
|
/* //=== Close File === ansi-c*/
|
||||||
|
@ -279,7 +279,7 @@ int GetLastIteration(FILE *f_in, TStateModel *model, TEstimateInfo *estimate)
|
||||||
|
|
||||||
if (!dw_SetFilePosition(f_in,id))
|
if (!dw_SetFilePosition(f_in,id))
|
||||||
{
|
{
|
||||||
free(id);
|
swzFree(id);
|
||||||
terminal_errors=dw_SetTerminalErrors(ALL_ERRORS & (~USER_ERR));
|
terminal_errors=dw_SetTerminalErrors(ALL_ERRORS & (~USER_ERR));
|
||||||
|
|
||||||
fmt="Iteration %d: ";
|
fmt="Iteration %d: ";
|
||||||
|
@ -294,7 +294,7 @@ int GetLastIteration(FILE *f_in, TStateModel *model, TEstimateInfo *estimate)
|
||||||
dw_SetTerminalErrors(terminal_errors);
|
dw_SetTerminalErrors(terminal_errors);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
free(header);
|
swzFree(header);
|
||||||
k--;
|
k--;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -302,7 +302,7 @@ int GetLastIteration(FILE *f_in, TStateModel *model, TEstimateInfo *estimate)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
free(id);
|
swzFree(id);
|
||||||
k++;
|
k++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -379,10 +379,10 @@ TStateModel* GetModelFromCommandLine(int nargs, char **args, TEstimateInfo *esti
|
||||||
estimate->specification_filename=filename;
|
estimate->specification_filename=filename;
|
||||||
estimate->initialization_filename=filename;
|
estimate->initialization_filename=filename;
|
||||||
estimate->initialization_header=header;
|
estimate->initialization_header=header;
|
||||||
if (d2) free(d2);
|
if (d2) swzFree(d2);
|
||||||
return model;
|
return model;
|
||||||
}
|
}
|
||||||
free(filename);
|
swzFree(filename);
|
||||||
|
|
||||||
fmt="%sinit_%s.dat";
|
fmt="%sinit_%s.dat";
|
||||||
sprintf(filename=(char*)swzMalloc(strlen(d1) + strlen(fmt) + strlen(tag) - 3),fmt,d1,tag);
|
sprintf(filename=(char*)swzMalloc(strlen(d1) + strlen(fmt) + strlen(tag) - 3),fmt,d1,tag);
|
||||||
|
@ -400,12 +400,12 @@ TStateModel* GetModelFromCommandLine(int nargs, char **args, TEstimateInfo *esti
|
||||||
{
|
{
|
||||||
fclose(f_in);
|
fclose(f_in);
|
||||||
estimate->initialization_filename=filename;
|
estimate->initialization_filename=filename;
|
||||||
if (d2) free(d2);
|
if (d2) swzFree(d2);
|
||||||
return model;
|
return model;
|
||||||
}
|
}
|
||||||
fclose(f_in);
|
fclose(f_in);
|
||||||
}
|
}
|
||||||
free(filename);
|
swzFree(filename);
|
||||||
|
|
||||||
fmt="%sinit_%s.dat";
|
fmt="%sinit_%s.dat";
|
||||||
sprintf(filename=(char*)swzMalloc(strlen(d1) + strlen(fmt) + strlen(tag) - 3),fmt,d1,tag);
|
sprintf(filename=(char*)swzMalloc(strlen(d1) + strlen(fmt) + strlen(tag) - 3),fmt,d1,tag);
|
||||||
|
@ -418,15 +418,15 @@ TStateModel* GetModelFromCommandLine(int nargs, char **args, TEstimateInfo *esti
|
||||||
printf("Using initial data\n");
|
printf("Using initial data\n");
|
||||||
estimate->initialization_filename=filename;
|
estimate->initialization_filename=filename;
|
||||||
estimate->initialization_header=header;
|
estimate->initialization_header=header;
|
||||||
if (d2) free(d2);
|
if (d2) swzFree(d2);
|
||||||
return model;
|
return model;
|
||||||
}
|
}
|
||||||
|
|
||||||
FreeStateModel(model);
|
FreeStateModel(model);
|
||||||
}
|
}
|
||||||
free(filename);
|
swzFree(filename);
|
||||||
|
|
||||||
//if (d2) free(d2);
|
//if (d2) swzFree(d2);
|
||||||
//swz_fprintf_err("GetModelFromCommandLine(): Unable to create model.\n");
|
//swz_fprintf_err("GetModelFromCommandLine(): Unable to create model.\n");
|
||||||
goto ERROR;
|
goto ERROR;
|
||||||
}
|
}
|
||||||
|
@ -446,12 +446,12 @@ TStateModel* GetModelFromCommandLine(int nargs, char **args, TEstimateInfo *esti
|
||||||
estimate->initialization_filename=filename;
|
estimate->initialization_filename=filename;
|
||||||
estimate->initialization_header=header;
|
estimate->initialization_header=header;
|
||||||
|
|
||||||
if (d2) free(d2);
|
if (d2) swzFree(d2);
|
||||||
return model;
|
return model;
|
||||||
}
|
}
|
||||||
|
|
||||||
ERROR:
|
ERROR:
|
||||||
if (d2) free(d2);
|
if (d2) swzFree(d2);
|
||||||
//swz_fprintf_err("GetModelFromCommandLine(): No specification file defined.\n");
|
//swz_fprintf_err("GetModelFromCommandLine(): No specification file defined.\n");
|
||||||
return (TStateModel*)NULL;
|
return (TStateModel*)NULL;
|
||||||
}
|
}
|
||||||
|
@ -530,7 +530,7 @@ TEstimateInfo* GetEstimateInfoFromCommandLine(int nargs, char **args) //, TState
|
||||||
sprintf(estimate->final_output_filename=(char*)swzMalloc(strlen(d1) + strlen(fmt) + strlen(tag) - 3),fmt,d1,tag);
|
sprintf(estimate->final_output_filename=(char*)swzMalloc(strlen(d1) + strlen(fmt) + strlen(tag) - 3),fmt,d1,tag);
|
||||||
fmt="%sest_aux_%s.dat";
|
fmt="%sest_aux_%s.dat";
|
||||||
sprintf(estimate->aux_output_filename=(char*)swzMalloc(strlen(d1) + strlen(fmt) + strlen(tag) - 3),fmt,d1,tag);
|
sprintf(estimate->aux_output_filename=(char*)swzMalloc(strlen(d1) + strlen(fmt) + strlen(tag) - 3),fmt,d1,tag);
|
||||||
if (d2) free(d2);
|
if (d2) swzFree(d2);
|
||||||
|
|
||||||
// Posterior mode or MLE
|
// Posterior mode or MLE
|
||||||
estimate->type=(dw_FindArgument_String(nargs,args,"MLE") >= 0) ? FIND_LIKELIHOOD_MODE : FIND_POSTERIOR_MODE;
|
estimate->type=(dw_FindArgument_String(nargs,args,"MLE") >= 0) ? FIND_LIKELIHOOD_MODE : FIND_POSTERIOR_MODE;
|
||||||
|
@ -658,7 +658,7 @@ int main(int nargs, char **args)
|
||||||
|
|
||||||
fclose(f_out);
|
fclose(f_out);
|
||||||
}
|
}
|
||||||
free(filename);
|
swzFree(filename);
|
||||||
|
|
||||||
/* // Write flat file ansi-c*/
|
/* // Write flat file ansi-c*/
|
||||||
filename=CreateFilenameFromTag("%sest_flat_header_%s.dat",estimate->cmd->out_tag,estimate->cmd->out_directory);
|
filename=CreateFilenameFromTag("%sest_flat_header_%s.dat",estimate->cmd->out_tag,estimate->cmd->out_directory);
|
||||||
|
@ -669,7 +669,7 @@ int main(int nargs, char **args)
|
||||||
fprintf(f_out,"\n");
|
fprintf(f_out,"\n");
|
||||||
fclose(f_out);
|
fclose(f_out);
|
||||||
}
|
}
|
||||||
free(filename);
|
swzFree(filename);
|
||||||
filename=CreateFilenameFromTag("%sest_flat_%s.dat",estimate->cmd->out_tag,estimate->cmd->out_directory);
|
filename=CreateFilenameFromTag("%sest_flat_%s.dat",estimate->cmd->out_tag,estimate->cmd->out_directory);
|
||||||
if (f_out=fopen(filename,"wt"))
|
if (f_out=fopen(filename,"wt"))
|
||||||
{
|
{
|
||||||
|
@ -681,7 +681,7 @@ int main(int nargs, char **args)
|
||||||
fprintf(f_out,"\n");
|
fprintf(f_out,"\n");
|
||||||
fclose(f_out);
|
fclose(f_out);
|
||||||
}
|
}
|
||||||
free(filename);
|
swzFree(filename);
|
||||||
|
|
||||||
/* // Write aux output ansi-c*/
|
/* // Write aux output ansi-c*/
|
||||||
filename=CreateFilenameFromTag("%sest_aux_%s.dat",estimate->cmd->out_tag,estimate->cmd->out_directory);
|
filename=CreateFilenameFromTag("%sest_aux_%s.dat",estimate->cmd->out_tag,estimate->cmd->out_directory);
|
||||||
|
@ -702,7 +702,7 @@ int main(int nargs, char **args)
|
||||||
FreeVector(y);
|
FreeVector(y);
|
||||||
fclose(f_out);
|
fclose(f_out);
|
||||||
}
|
}
|
||||||
free(filename);
|
swzFree(filename);
|
||||||
|
|
||||||
/* // Free memory ansi-c*/
|
/* // Free memory ansi-c*/
|
||||||
FreeStateModel(model);
|
FreeStateModel(model);
|
||||||
|
@ -714,7 +714,7 @@ int main(int nargs, char **args)
|
||||||
if (estimate)
|
if (estimate)
|
||||||
{
|
{
|
||||||
if (estimate->cmd) Free_VARCommandLine(estimate->cmd);
|
if (estimate->cmd) Free_VARCommandLine(estimate->cmd);
|
||||||
free(estimate);
|
swzFree(estimate);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -63,7 +63,7 @@ void FreeMHM(T_MHM *mhm)
|
||||||
dw_FreeArray(mhm->BaseAlpha);
|
dw_FreeArray(mhm->BaseAlpha);
|
||||||
dw_FreeArray(mhm->Alpha);
|
dw_FreeArray(mhm->Alpha);
|
||||||
|
|
||||||
free(mhm);
|
swzFree(mhm);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -427,7 +427,7 @@ static int ReadError_MHMio(char *id)
|
||||||
char *errmsg, *fmt="Error involving line identifier \"%s\"";
|
char *errmsg, *fmt="Error involving line identifier \"%s\"";
|
||||||
sprintf(errmsg=(char*)swzMalloc(strlen(fmt) + strlen(id) - 1),fmt,id);
|
sprintf(errmsg=(char*)swzMalloc(strlen(fmt) + strlen(id) - 1),fmt,id);
|
||||||
dw_UserError(errmsg);
|
dw_UserError(errmsg);
|
||||||
free(errmsg);
|
swzFree(errmsg);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@ static void ReadError_MHMio(char *id)
|
||||||
char *errmsg, *fmt="Error after line identifier ""%s""";
|
char *errmsg, *fmt="Error after line identifier ""%s""";
|
||||||
sprintf(errmsg=(char*)swzMalloc(strlen(fmt) + strlen(id) - 1),fmt,id);
|
sprintf(errmsg=(char*)swzMalloc(strlen(fmt) + strlen(id) - 1),fmt,id);
|
||||||
dw_UserError(errmsg);
|
dw_UserError(errmsg);
|
||||||
free(errmsg);
|
swzFree(errmsg);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -259,14 +259,14 @@ T_MHM* CreateMHM_CommandLine(int nargs, char **args)
|
||||||
mhm=rtrn;
|
mhm=rtrn;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
free(spec_filename);
|
swzFree(spec_filename);
|
||||||
fmt="%smhm_intermediate_%s.dat";
|
fmt="%smhm_intermediate_%s.dat";
|
||||||
sprintf(spec_filename=(char*)swzMalloc(strlen(d_in) + strlen(fmt) + strlen(tag) - 3),fmt,d_in,tag);
|
sprintf(spec_filename=(char*)swzMalloc(strlen(d_in) + strlen(fmt) + strlen(tag) - 3),fmt,d_in,tag);
|
||||||
if (rtrn=RestartFromIntermediateFile(spec_filename,mhm))
|
if (rtrn=RestartFromIntermediateFile(spec_filename,mhm))
|
||||||
mhm=rtrn;
|
mhm=rtrn;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
free(spec_filename);
|
swzFree(spec_filename);
|
||||||
fmt="%sest_final_%s.dat";
|
fmt="%sest_final_%s.dat";
|
||||||
sprintf(spec_filename=(char*)swzMalloc(strlen(d_in) + strlen(fmt) + strlen(tag) - 3),fmt,d_in,tag);
|
sprintf(spec_filename=(char*)swzMalloc(strlen(d_in) + strlen(fmt) + strlen(tag) - 3),fmt,d_in,tag);
|
||||||
if (!(f_in=fopen(spec_filename,"rt")))
|
if (!(f_in=fopen(spec_filename,"rt")))
|
||||||
|
@ -334,8 +334,8 @@ T_MHM* CreateMHM_CommandLine(int nargs, char **args)
|
||||||
/* //fmt="%smhm_draws_states_not_integrated_%s.dat"; ansi-c*/
|
/* //fmt="%smhm_draws_states_not_integrated_%s.dat"; ansi-c*/
|
||||||
/* //sprintf(mhm->states_not_integrated_out_filename=(char*)swzMalloc(strlen(d_out) + strlen(fmt) + strlen(tag) - 3),fmt,d_out,tag); ansi-c*/
|
/* //sprintf(mhm->states_not_integrated_out_filename=(char*)swzMalloc(strlen(d_out) + strlen(fmt) + strlen(tag) - 3),fmt,d_out,tag); ansi-c*/
|
||||||
|
|
||||||
free(d_in);
|
swzFree(d_in);
|
||||||
free(d_out);
|
swzFree(d_out);
|
||||||
return mhm;
|
return mhm;
|
||||||
}
|
}
|
||||||
#undef LOG_TWO_PI
|
#undef LOG_TWO_PI
|
||||||
|
|
|
@ -130,9 +130,9 @@ int main(int nargs, char **args)
|
||||||
fprintf(f_out,"\n");
|
fprintf(f_out,"\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
free(spec);
|
swzFree(spec);
|
||||||
free(out);
|
swzFree(out);
|
||||||
free(head);
|
swzFree(head);
|
||||||
free(parm);
|
swzFree(parm);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,8 +50,8 @@ void dw_FreeArray(void* a)
|
||||||
for (i=(size=dw_ElementSizeA(a))*(dw_DimA(a)-1); i >= 0; i-=size)
|
for (i=(size=dw_ElementSizeA(a))*(dw_DimA(a)-1); i >= 0; i-=size)
|
||||||
Destructor((void*)(((char*)a) + i));
|
Destructor((void*)(((char*)a) + i));
|
||||||
offset=dw_GetOffsetA(a);
|
offset=dw_GetOffsetA(a);
|
||||||
if (dw_DeleteSpecsA(a)) free(dw_SpecsA(a));
|
if (dw_DeleteSpecsA(a)) swzFree(dw_SpecsA(a));
|
||||||
free((void*)(((char*)a) - offset));
|
swzFree((void*)(((char*)a) - offset));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -375,7 +375,7 @@ static int dw_CopyString(void *d, void *s)
|
||||||
else
|
else
|
||||||
if (*((char**)d))
|
if (*((char**)d))
|
||||||
{
|
{
|
||||||
free(*((char**)d));
|
swzFree(*((char**)d));
|
||||||
*((char**)d)=(char*)NULL;
|
*((char**)d)=(char*)NULL;
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -412,7 +412,7 @@ void* dw_CreateMultidimensionalArrayList(TElementSpecification *specs, int depth
|
||||||
for (i=0; i < depth; i++) dim[i]=va_arg(ap,int);
|
for (i=0; i < depth; i++) dim[i]=va_arg(ap,int);
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
a=dw_CreateMultidimensionalArray(specs,depth,dim);
|
a=dw_CreateMultidimensionalArray(specs,depth,dim);
|
||||||
free(dim);
|
swzFree(dim);
|
||||||
}
|
}
|
||||||
return a;
|
return a;
|
||||||
}
|
}
|
||||||
|
@ -428,7 +428,7 @@ void* dw_CreateMultidimensionalArrayList_string(int depth, ...)
|
||||||
for (i=0; i < depth; i++) dim[i]=va_arg(ap,int);
|
for (i=0; i < depth; i++) dim[i]=va_arg(ap,int);
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
a=dw_CreateMultidimensionalArray_string(depth,dim);
|
a=dw_CreateMultidimensionalArray_string(depth,dim);
|
||||||
free(dim);
|
swzFree(dim);
|
||||||
}
|
}
|
||||||
return a;
|
return a;
|
||||||
}
|
}
|
||||||
|
@ -444,7 +444,7 @@ void* dw_CreateMultidimensionalArrayList_int(int depth, ...)
|
||||||
for (i=0; i < depth; i++) dim[i]=va_arg(ap,int);
|
for (i=0; i < depth; i++) dim[i]=va_arg(ap,int);
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
a=dw_CreateMultidimensionalArray_int(depth,dim);
|
a=dw_CreateMultidimensionalArray_int(depth,dim);
|
||||||
free(dim);
|
swzFree(dim);
|
||||||
}
|
}
|
||||||
return a;
|
return a;
|
||||||
}
|
}
|
||||||
|
@ -460,7 +460,7 @@ void* dw_CreateMultidimensionalArrayList_double(int depth, ...)
|
||||||
for (i=0; i < depth; i++) dim[i]=va_arg(ap,int);
|
for (i=0; i < depth; i++) dim[i]=va_arg(ap,int);
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
a=dw_CreateMultidimensionalArray_double(depth,dim);
|
a=dw_CreateMultidimensionalArray_double(depth,dim);
|
||||||
free(dim);
|
swzFree(dim);
|
||||||
}
|
}
|
||||||
return a;
|
return a;
|
||||||
}
|
}
|
||||||
|
@ -476,7 +476,7 @@ void* dw_CreateMultidimensionalArrayList_float(int depth, ...)
|
||||||
for (i=0; i < depth; i++) dim[i]=va_arg(ap,int);
|
for (i=0; i < depth; i++) dim[i]=va_arg(ap,int);
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
a=dw_CreateMultidimensionalArray_float(depth,dim);
|
a=dw_CreateMultidimensionalArray_float(depth,dim);
|
||||||
free(dim);
|
swzFree(dim);
|
||||||
}
|
}
|
||||||
return a;
|
return a;
|
||||||
}
|
}
|
||||||
|
@ -492,7 +492,7 @@ void* dw_CreateMultidimensionalArrayList_char(int depth, ...)
|
||||||
for (i=0; i < depth; i++) dim[i]=va_arg(ap,int);
|
for (i=0; i < depth; i++) dim[i]=va_arg(ap,int);
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
a=dw_CreateMultidimensionalArray_char(depth,dim);
|
a=dw_CreateMultidimensionalArray_char(depth,dim);
|
||||||
free(dim);
|
swzFree(dim);
|
||||||
}
|
}
|
||||||
return a;
|
return a;
|
||||||
}
|
}
|
||||||
|
@ -625,7 +625,7 @@ TElementSpecification dw_StringSpecs =
|
||||||
dw_ARRAY_POINTER,
|
dw_ARRAY_POINTER,
|
||||||
sizeof(char*),
|
sizeof(char*),
|
||||||
sizeof(char*)*((sizeof(int)+sizeof(TElementSpecification*)+sizeof(char*)-1)/sizeof(char*)),
|
sizeof(char*)*((sizeof(int)+sizeof(TElementSpecification*)+sizeof(char*)-1)/sizeof(char*)),
|
||||||
free,
|
swzFree,
|
||||||
DefaultPointerConstructor,
|
DefaultPointerConstructor,
|
||||||
NULL,
|
NULL,
|
||||||
dw_CopyString,
|
dw_CopyString,
|
||||||
|
|
|
@ -149,7 +149,7 @@ TMatrix MatrixTensor(TMatrix X, TMatrix* Y)
|
||||||
U=V;
|
U=V;
|
||||||
V=W;
|
V=W;
|
||||||
}
|
}
|
||||||
free(Z);
|
swzFree(Z);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (dw_DimA(Y) > 1)
|
if (dw_DimA(Y) > 1)
|
||||||
|
@ -237,7 +237,7 @@ TVector VectorTensor(TVector x, TVector* y)
|
||||||
u=v;
|
u=v;
|
||||||
v=w;
|
v=w;
|
||||||
}
|
}
|
||||||
free(z);
|
swzFree(z);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (dw_DimA(y) > 1)
|
if (dw_DimA(y) > 1)
|
||||||
|
|
|
@ -98,7 +98,7 @@ char* dw_ReadLine(FILE *f, char *buffer, int *n)
|
||||||
else
|
else
|
||||||
if (!(nbuffer=(char*)swzRealloc(buffer,*n+=SIZE_INCREMENT)))
|
if (!(nbuffer=(char*)swzRealloc(buffer,*n+=SIZE_INCREMENT)))
|
||||||
{
|
{
|
||||||
free(buffer);
|
swzFree(buffer);
|
||||||
*n=0;
|
*n=0;
|
||||||
return (char*)NULL;
|
return (char*)NULL;
|
||||||
}
|
}
|
||||||
|
@ -108,7 +108,7 @@ char* dw_ReadLine(FILE *f, char *buffer, int *n)
|
||||||
return buffer;
|
return buffer;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
free(buffer);
|
swzFree(buffer);
|
||||||
*n=0;
|
*n=0;
|
||||||
return (char*)NULL;
|
return (char*)NULL;
|
||||||
}
|
}
|
||||||
|
@ -154,7 +154,7 @@ char** dw_ParseDelimitedString(char *buffer, char delimiter, int flag)
|
||||||
v[k][head->length]='\0';
|
v[k][head->length]='\0';
|
||||||
ptr=head;
|
ptr=head;
|
||||||
head=head->next;
|
head=head->next;
|
||||||
free(ptr);
|
swzFree(ptr);
|
||||||
}
|
}
|
||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
|
@ -182,7 +182,7 @@ char** dw_ReadDelimitedLine(FILE *f, char delimiter, int flag)
|
||||||
if (buffer)
|
if (buffer)
|
||||||
{
|
{
|
||||||
v=dw_ParseDelimitedString(buffer,delimiter,flag);
|
v=dw_ParseDelimitedString(buffer,delimiter,flag);
|
||||||
free(buffer);
|
swzFree(buffer);
|
||||||
}
|
}
|
||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
|
@ -237,7 +237,7 @@ char*** dw_ReadDelimitedFile(FILE *f, char* filename, char delimiter, int flag)
|
||||||
M[n]=head->line;
|
M[n]=head->line;
|
||||||
ptr=head;
|
ptr=head;
|
||||||
head=head->next;
|
head=head->next;
|
||||||
free(ptr);
|
swzFree(ptr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -382,7 +382,7 @@ int dw_SetFilePosition(FILE *f, char *id)
|
||||||
while (buffer=dw_ReadLine(f,buffer,&m))
|
while (buffer=dw_ReadLine(f,buffer,&m))
|
||||||
if (!memcmp(buffer,id,n))
|
if (!memcmp(buffer,id,n))
|
||||||
{
|
{
|
||||||
free(buffer);
|
swzFree(buffer);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if (pos > 0)
|
if (pos > 0)
|
||||||
|
@ -391,10 +391,10 @@ int dw_SetFilePosition(FILE *f, char *id)
|
||||||
while ((ftell(f) < pos) && (buffer=dw_ReadLine(f,buffer,&m)))
|
while ((ftell(f) < pos) && (buffer=dw_ReadLine(f,buffer,&m)))
|
||||||
if (!memcmp(buffer,id,n))
|
if (!memcmp(buffer,id,n))
|
||||||
{
|
{
|
||||||
free(buffer);
|
swzFree(buffer);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if (buffer) free(buffer);
|
if (buffer) swzFree(buffer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -532,12 +532,12 @@ int bLU(int *p, PRECISION *x, int m, int n, int xt)
|
||||||
getrf(&m2,&n2,y,&m2,p2,&info);
|
getrf(&m2,&n2,y,&m2,p2,&info);
|
||||||
|
|
||||||
bTranspose(x,y,m,n,1);
|
bTranspose(x,y,m,n,1);
|
||||||
free(y);
|
swzFree(y);
|
||||||
}
|
}
|
||||||
|
|
||||||
for(i=0; i<minmn; i++)
|
for(i=0; i<minmn; i++)
|
||||||
p[i] = p2[i];
|
p[i] = p2[i];
|
||||||
free(p2);
|
swzFree(p2);
|
||||||
|
|
||||||
for (i=(m < n) ? m-1 : n-1; i >= 0; i--) p[i]--;
|
for (i=(m < n) ? m-1 : n-1; i >= 0; i--) p[i]--;
|
||||||
return (info < 0) ? SING_ERR : NO_ERR;
|
return (info < 0) ? SING_ERR : NO_ERR;
|
||||||
|
@ -989,7 +989,7 @@ int bSVD_new(PRECISION *U, PRECISION *d, PRECISION *V, PRECISION *A, int m, int
|
||||||
else
|
else
|
||||||
if (!(U_=(PRECISION*)swzMalloc(m*qu*sizeof(PRECISION))))
|
if (!(U_=(PRECISION*)swzMalloc(m*qu*sizeof(PRECISION))))
|
||||||
{
|
{
|
||||||
free(A_);
|
swzFree(A_);
|
||||||
return MEM_ERR;
|
return MEM_ERR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1017,8 +1017,8 @@ int bSVD_new(PRECISION *U, PRECISION *d, PRECISION *V, PRECISION *A, int m, int
|
||||||
else
|
else
|
||||||
if (!(V_=(PRECISION*)swzMalloc(n*qv*sizeof(PRECISION))))
|
if (!(V_=(PRECISION*)swzMalloc(n*qv*sizeof(PRECISION))))
|
||||||
{
|
{
|
||||||
free(A_);
|
swzFree(A_);
|
||||||
if (U_ && (U_ != U)) free(U_);
|
if (U_ && (U_ != U)) swzFree(U_);
|
||||||
return MEM_ERR;
|
return MEM_ERR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1037,7 +1037,7 @@ int bSVD_new(PRECISION *U, PRECISION *d, PRECISION *V, PRECISION *A, int m, int
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gesvd(&jobu,&jobv,&m2,&n2,A_,&m2,d,U_,&m2,V_,&qv2,work,&k,&info);
|
gesvd(&jobu,&jobv,&m2,&n2,A_,&m2,d,U_,&m2,V_,&qv2,work,&k,&info);
|
||||||
free(work);
|
swzFree(work);
|
||||||
if (info)
|
if (info)
|
||||||
err=BLAS_LAPACK_ERR;
|
err=BLAS_LAPACK_ERR;
|
||||||
else
|
else
|
||||||
|
@ -1048,9 +1048,9 @@ int bSVD_new(PRECISION *U, PRECISION *d, PRECISION *V, PRECISION *A, int m, int
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
free(A_);
|
swzFree(A_);
|
||||||
if (U_ && (U_ != U)) free(U_);
|
if (U_ && (U_ != U)) swzFree(U_);
|
||||||
if (V_ && (V_ != V)) free(V_);
|
if (V_ && (V_ != V)) swzFree(V_);
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
|
|
||||||
|
@ -1139,7 +1139,7 @@ int bSVD_new(PRECISION *U, PRECISION *d, PRECISION *V, PRECISION *A, int m, int
|
||||||
/* else */
|
/* else */
|
||||||
/* { */
|
/* { */
|
||||||
/* gesvd(&jobu,&jobv,&m_,&n_,A_,&m_,d,U_,&m_,V_,&qv_,work,&k,&info); */
|
/* gesvd(&jobu,&jobv,&m_,&n_,A_,&m_,d,U_,&m_,V_,&qv_,work,&k,&info); */
|
||||||
/* free(work); */
|
/* swzFree(work); */
|
||||||
/* if (info) */
|
/* if (info) */
|
||||||
/* err=BLAS_LAPACK_ERR; */
|
/* err=BLAS_LAPACK_ERR; */
|
||||||
/* else */
|
/* else */
|
||||||
|
@ -1164,23 +1164,23 @@ int bSVD_new(PRECISION *U, PRECISION *d, PRECISION *V, PRECISION *A, int m, int
|
||||||
/* } */
|
/* } */
|
||||||
/* } */
|
/* } */
|
||||||
|
|
||||||
/* free(A_); */
|
/* swzFree(A_); */
|
||||||
|
|
||||||
/* if (transpose) */
|
/* if (transpose) */
|
||||||
/* { */
|
/* { */
|
||||||
/* if (U != V_) */
|
/* if (U != V_) */
|
||||||
/* free(V_); */
|
/* swzFree(V_); */
|
||||||
/* else */
|
/* else */
|
||||||
/* if (V != U_) */
|
/* if (V != U_) */
|
||||||
/* free(U_); */
|
/* swzFree(U_); */
|
||||||
/* } */
|
/* } */
|
||||||
/* else */
|
/* else */
|
||||||
/* { */
|
/* { */
|
||||||
/* if (U != U_) */
|
/* if (U != U_) */
|
||||||
/* free(U_); */
|
/* swzFree(U_); */
|
||||||
/* else */
|
/* else */
|
||||||
/* if (V != V_) */
|
/* if (V != V_) */
|
||||||
/* free(V_); */
|
/* swzFree(V_); */
|
||||||
/* } */
|
/* } */
|
||||||
|
|
||||||
/* return err; */
|
/* return err; */
|
||||||
|
@ -1270,7 +1270,7 @@ int bSVD(PRECISION *U, PRECISION *d, PRECISION *V, PRECISION *A, int m, int n, i
|
||||||
memcpy(X,A,m*n*sizeof(PRECISION));
|
memcpy(X,A,m*n*sizeof(PRECISION));
|
||||||
if (!(iwork=(int*)swzMalloc(8*((m < n) ? m : n)*sizeof(int))))
|
if (!(iwork=(int*)swzMalloc(8*((m < n) ? m : n)*sizeof(int))))
|
||||||
{
|
{
|
||||||
free(X);
|
swzFree(X);
|
||||||
return MEM_ERR;
|
return MEM_ERR;
|
||||||
}
|
}
|
||||||
k=-1;
|
k=-1;
|
||||||
|
@ -1283,16 +1283,16 @@ int bSVD(PRECISION *U, PRECISION *d, PRECISION *V, PRECISION *A, int m, int n, i
|
||||||
gesvd(&jobz,&jobz,&m2,&n2,X,&m2,d,U,&m2,V,&n2,&opt_size,&k,&info);
|
gesvd(&jobz,&jobz,&m2,&n2,X,&m2,d,U,&m2,V,&n2,&opt_size,&k,&info);
|
||||||
if (info || !(work=(PRECISION*)swzMalloc((k=(int)opt_size)*sizeof(PRECISION))))
|
if (info || !(work=(PRECISION*)swzMalloc((k=(int)opt_size)*sizeof(PRECISION))))
|
||||||
{
|
{
|
||||||
free(iwork);
|
swzFree(iwork);
|
||||||
free(X);
|
swzFree(X);
|
||||||
return info ? BLAS_LAPACK_ERR : MEM_ERR;
|
return info ? BLAS_LAPACK_ERR : MEM_ERR;
|
||||||
}
|
}
|
||||||
gesvd(&jobz,&jobz,&m2,&n2,X,&m2,d,U,&m2,V,&n2,work,&k,&info);
|
gesvd(&jobz,&jobz,&m2,&n2,X,&m2,d,U,&m2,V,&n2,work,&k,&info);
|
||||||
if (info)
|
if (info)
|
||||||
{
|
{
|
||||||
free(work);
|
swzFree(work);
|
||||||
free(iwork);
|
swzFree(iwork);
|
||||||
free(X);
|
swzFree(X);
|
||||||
return BLAS_LAPACK_ERR;
|
return BLAS_LAPACK_ERR;
|
||||||
}
|
}
|
||||||
if (!ut)
|
if (!ut)
|
||||||
|
@ -1307,16 +1307,16 @@ int bSVD(PRECISION *U, PRECISION *d, PRECISION *V, PRECISION *A, int m, int n, i
|
||||||
gesvd(&jobz,&jobz,&n2,&m2,X,&n2,d,V,&n2,U,&m2,&opt_size,&k,&info);
|
gesvd(&jobz,&jobz,&n2,&m2,X,&n2,d,V,&n2,U,&m2,&opt_size,&k,&info);
|
||||||
if (info || !(work=(PRECISION*)swzMalloc((k=(int)opt_size)*sizeof(PRECISION))))
|
if (info || !(work=(PRECISION*)swzMalloc((k=(int)opt_size)*sizeof(PRECISION))))
|
||||||
{
|
{
|
||||||
free(iwork);
|
swzFree(iwork);
|
||||||
free(X);
|
swzFree(X);
|
||||||
return info ? BLAS_LAPACK_ERR : MEM_ERR;
|
return info ? BLAS_LAPACK_ERR : MEM_ERR;
|
||||||
}
|
}
|
||||||
gesvd(&jobz,&jobz,&n2,&m2,X,&n2,d,V,&n2,U,&m2,work,&k,&info);
|
gesvd(&jobz,&jobz,&n2,&m2,X,&n2,d,V,&n2,U,&m2,work,&k,&info);
|
||||||
if (info)
|
if (info)
|
||||||
{
|
{
|
||||||
free(work);
|
swzFree(work);
|
||||||
free(iwork);
|
swzFree(iwork);
|
||||||
free(X);
|
swzFree(X);
|
||||||
return BLAS_LAPACK_ERR;
|
return BLAS_LAPACK_ERR;
|
||||||
}
|
}
|
||||||
if (!vt)
|
if (!vt)
|
||||||
|
@ -1324,9 +1324,9 @@ int bSVD(PRECISION *U, PRECISION *d, PRECISION *V, PRECISION *A, int m, int n, i
|
||||||
if (ut)
|
if (ut)
|
||||||
bTransposeInPlace(U,m);
|
bTransposeInPlace(U,m);
|
||||||
}
|
}
|
||||||
free(work);
|
swzFree(work);
|
||||||
free(iwork);
|
swzFree(iwork);
|
||||||
free(X);
|
swzFree(X);
|
||||||
return NO_ERR;
|
return NO_ERR;
|
||||||
|
|
||||||
#undef gesvd
|
#undef gesvd
|
||||||
|
@ -1343,7 +1343,7 @@ int bSVD(PRECISION *U, PRECISION *d, PRECISION *V, PRECISION *A, int m, int n, i
|
||||||
/* memcpy(X,A,m*n*sizeof(PRECISION)); */
|
/* memcpy(X,A,m*n*sizeof(PRECISION)); */
|
||||||
/* if (!(iwork=(int*)swzMalloc(8*((m < n) ? m : n)*sizeof(int)))) */
|
/* if (!(iwork=(int*)swzMalloc(8*((m < n) ? m : n)*sizeof(int)))) */
|
||||||
/* { */
|
/* { */
|
||||||
/* free(X); */
|
/* swzFree(X); */
|
||||||
/* return MEM_ERR; */
|
/* return MEM_ERR; */
|
||||||
/* } */
|
/* } */
|
||||||
/* k=-1; */
|
/* k=-1; */
|
||||||
|
@ -1352,16 +1352,16 @@ int bSVD(PRECISION *U, PRECISION *d, PRECISION *V, PRECISION *A, int m, int n, i
|
||||||
/* gesdd(&jobz,&m,&n,X,&m,d,U,&m,V,&n,&opt_size,&k,iwork,&info); */
|
/* gesdd(&jobz,&m,&n,X,&m,d,U,&m,V,&n,&opt_size,&k,iwork,&info); */
|
||||||
/* if (info || !(work=(PRECISION*)swzMalloc((k=(int)opt_size)*sizeof(PRECISION)))) */
|
/* if (info || !(work=(PRECISION*)swzMalloc((k=(int)opt_size)*sizeof(PRECISION)))) */
|
||||||
/* { */
|
/* { */
|
||||||
/* free(iwork); */
|
/* swzFree(iwork); */
|
||||||
/* free(X); */
|
/* swzFree(X); */
|
||||||
/* return info ? BLAS_LAPACK_ERR : MEM_ERR; */
|
/* return info ? BLAS_LAPACK_ERR : MEM_ERR; */
|
||||||
/* } */
|
/* } */
|
||||||
/* gesdd(&jobz,&m,&n,X,&m,d,U,&m,V,&n,work,&k,iwork,&info); */
|
/* gesdd(&jobz,&m,&n,X,&m,d,U,&m,V,&n,work,&k,iwork,&info); */
|
||||||
/* if (info) */
|
/* if (info) */
|
||||||
/* { */
|
/* { */
|
||||||
/* free(work); */
|
/* swzFree(work); */
|
||||||
/* free(iwork); */
|
/* swzFree(iwork); */
|
||||||
/* free(X); */
|
/* swzFree(X); */
|
||||||
/* return BLAS_LAPACK_ERR; */
|
/* return BLAS_LAPACK_ERR; */
|
||||||
/* } */
|
/* } */
|
||||||
/* if (!ut) */
|
/* if (!ut) */
|
||||||
|
@ -1374,16 +1374,16 @@ int bSVD(PRECISION *U, PRECISION *d, PRECISION *V, PRECISION *A, int m, int n, i
|
||||||
/* gesdd(&jobz,&n,&m,X,&n,d,V,&n,U,&m,&opt_size,&k,iwork,&info); */
|
/* gesdd(&jobz,&n,&m,X,&n,d,V,&n,U,&m,&opt_size,&k,iwork,&info); */
|
||||||
/* if (!(work=(PRECISION*)swzMalloc((k=(int)opt_size)*sizeof(PRECISION)))) */
|
/* if (!(work=(PRECISION*)swzMalloc((k=(int)opt_size)*sizeof(PRECISION)))) */
|
||||||
/* { */
|
/* { */
|
||||||
/* free(iwork); */
|
/* swzFree(iwork); */
|
||||||
/* free(X); */
|
/* swzFree(X); */
|
||||||
/* return MEM_ERR; */
|
/* return MEM_ERR; */
|
||||||
/* } */
|
/* } */
|
||||||
/* gesdd(&jobz,&n,&m,X,&n,d,V,&n,U,&m,work,&k,iwork,&info); */
|
/* gesdd(&jobz,&n,&m,X,&n,d,V,&n,U,&m,work,&k,iwork,&info); */
|
||||||
/* if (info) */
|
/* if (info) */
|
||||||
/* { */
|
/* { */
|
||||||
/* free(work); */
|
/* swzFree(work); */
|
||||||
/* free(iwork); */
|
/* swzFree(iwork); */
|
||||||
/* free(X); */
|
/* swzFree(X); */
|
||||||
/* return BLAS_LAPACK_ERR; */
|
/* return BLAS_LAPACK_ERR; */
|
||||||
/* } */
|
/* } */
|
||||||
/* if (!vt) */
|
/* if (!vt) */
|
||||||
|
@ -1391,9 +1391,9 @@ int bSVD(PRECISION *U, PRECISION *d, PRECISION *V, PRECISION *A, int m, int n, i
|
||||||
/* if (ut) */
|
/* if (ut) */
|
||||||
/* bTransposeInPlace(U,m); */
|
/* bTransposeInPlace(U,m); */
|
||||||
/* } */
|
/* } */
|
||||||
/* free(work); */
|
/* swzFree(work); */
|
||||||
/* free(iwork); */
|
/* swzFree(iwork); */
|
||||||
/* free(X); */
|
/* swzFree(X); */
|
||||||
/* return NO_ERR; */
|
/* return NO_ERR; */
|
||||||
|
|
||||||
/* #undef gesdd */
|
/* #undef gesdd */
|
||||||
|
@ -1493,16 +1493,16 @@ int bQR(PRECISION *Q, PRECISION *R, PRECISION *X, int m, int n, int q, int qt, i
|
||||||
|
|
||||||
if (!(work=(PRECISION*)swzMalloc((lwork=(int)opt_size)*sizeof(PRECISION))))
|
if (!(work=(PRECISION*)swzMalloc((lwork=(int)opt_size)*sizeof(PRECISION))))
|
||||||
{
|
{
|
||||||
free(tau);
|
swzFree(tau);
|
||||||
return MEM_ERR;
|
return MEM_ERR;
|
||||||
}
|
}
|
||||||
|
|
||||||
geqrf(&m2,&n2,X,&m2,tau,work,&lwork,&info);
|
geqrf(&m2,&n2,X,&m2,tau,work,&lwork,&info);
|
||||||
|
|
||||||
free(work);
|
swzFree(work);
|
||||||
if (info)
|
if (info)
|
||||||
{
|
{
|
||||||
free(tau);
|
swzFree(tau);
|
||||||
return ARG_ERR;
|
return ARG_ERR;
|
||||||
}
|
}
|
||||||
if (Q)
|
if (Q)
|
||||||
|
@ -1512,7 +1512,7 @@ int bQR(PRECISION *Q, PRECISION *R, PRECISION *X, int m, int n, int q, int qt, i
|
||||||
else
|
else
|
||||||
if (!(ptr=(PRECISION*)swzMalloc(m*q*sizeof(PRECISION))))
|
if (!(ptr=(PRECISION*)swzMalloc(m*q*sizeof(PRECISION))))
|
||||||
{
|
{
|
||||||
free(tau);
|
swzFree(tau);
|
||||||
return MEM_ERR;
|
return MEM_ERR;
|
||||||
}
|
}
|
||||||
memcpy(ptr,X,m*p*sizeof(PRECISION));
|
memcpy(ptr,X,m*p*sizeof(PRECISION));
|
||||||
|
@ -1524,24 +1524,24 @@ int bQR(PRECISION *Q, PRECISION *R, PRECISION *X, int m, int n, int q, int qt, i
|
||||||
|
|
||||||
if (!(work=(PRECISION*)swzMalloc((lwork=(int)opt_size)*sizeof(PRECISION))))
|
if (!(work=(PRECISION*)swzMalloc((lwork=(int)opt_size)*sizeof(PRECISION))))
|
||||||
{
|
{
|
||||||
if (!qt) free(ptr);
|
if (!qt) swzFree(ptr);
|
||||||
free(tau);
|
swzFree(tau);
|
||||||
return MEM_ERR;
|
return MEM_ERR;
|
||||||
}
|
}
|
||||||
|
|
||||||
orgqr(&m2,&q2,&p2,ptr,&m2,tau,work,&lwork,&info);
|
orgqr(&m2,&q2,&p2,ptr,&m2,tau,work,&lwork,&info);
|
||||||
|
|
||||||
free(work);
|
swzFree(work);
|
||||||
if (!qt)
|
if (!qt)
|
||||||
{
|
{
|
||||||
bTranspose(Q,ptr,m,q,1);
|
bTranspose(Q,ptr,m,q,1);
|
||||||
free(ptr);
|
swzFree(ptr);
|
||||||
}
|
}
|
||||||
free(tau);
|
swzFree(tau);
|
||||||
if (info) return ARG_ERR;
|
if (info) return ARG_ERR;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
free(tau);
|
swzFree(tau);
|
||||||
if (R != X)
|
if (R != X)
|
||||||
if (rt)
|
if (rt)
|
||||||
for (k=q*n, j=n-1; j >= 0; j--)
|
for (k=q*n, j=n-1; j >= 0; j--)
|
||||||
|
@ -1570,16 +1570,16 @@ int bQR(PRECISION *Q, PRECISION *R, PRECISION *X, int m, int n, int q, int qt, i
|
||||||
|
|
||||||
if (!(work=(PRECISION*)swzMalloc((lwork=(int)opt_size)*sizeof(PRECISION))))
|
if (!(work=(PRECISION*)swzMalloc((lwork=(int)opt_size)*sizeof(PRECISION))))
|
||||||
{
|
{
|
||||||
free(tau);
|
swzFree(tau);
|
||||||
return MEM_ERR;
|
return MEM_ERR;
|
||||||
}
|
}
|
||||||
|
|
||||||
gelqf(&n2,&m2,X,&n2,tau,work,&lwork,&info);
|
gelqf(&n2,&m2,X,&n2,tau,work,&lwork,&info);
|
||||||
|
|
||||||
free(work);
|
swzFree(work);
|
||||||
if (info)
|
if (info)
|
||||||
{
|
{
|
||||||
free(tau);
|
swzFree(tau);
|
||||||
return ARG_ERR;
|
return ARG_ERR;
|
||||||
}
|
}
|
||||||
if (Q)
|
if (Q)
|
||||||
|
@ -1589,7 +1589,7 @@ int bQR(PRECISION *Q, PRECISION *R, PRECISION *X, int m, int n, int q, int qt, i
|
||||||
else
|
else
|
||||||
if (!(ptr=(PRECISION*)swzMalloc(m*q*sizeof(PRECISION))))
|
if (!(ptr=(PRECISION*)swzMalloc(m*q*sizeof(PRECISION))))
|
||||||
{
|
{
|
||||||
free(tau);
|
swzFree(tau);
|
||||||
return MEM_ERR;
|
return MEM_ERR;
|
||||||
}
|
}
|
||||||
if (q == n)
|
if (q == n)
|
||||||
|
@ -1612,24 +1612,24 @@ int bQR(PRECISION *Q, PRECISION *R, PRECISION *X, int m, int n, int q, int qt, i
|
||||||
|
|
||||||
if (!(work=(PRECISION*)swzMalloc((lwork=(int)opt_size)*sizeof(PRECISION))))
|
if (!(work=(PRECISION*)swzMalloc((lwork=(int)opt_size)*sizeof(PRECISION))))
|
||||||
{
|
{
|
||||||
if (!qt) free(ptr);
|
if (!qt) swzFree(ptr);
|
||||||
free(tau);
|
swzFree(tau);
|
||||||
return MEM_ERR;
|
return MEM_ERR;
|
||||||
}
|
}
|
||||||
|
|
||||||
orglq(&q2,&m2,&p2,ptr,&q2,tau,work,&lwork,&info);
|
orglq(&q2,&m2,&p2,ptr,&q2,tau,work,&lwork,&info);
|
||||||
|
|
||||||
free(work);
|
swzFree(work);
|
||||||
if (qt)
|
if (qt)
|
||||||
{
|
{
|
||||||
bTranspose(Q,ptr,q,m,1);
|
bTranspose(Q,ptr,q,m,1);
|
||||||
free(ptr);
|
swzFree(ptr);
|
||||||
}
|
}
|
||||||
free(tau);
|
swzFree(tau);
|
||||||
if (info) return ARG_ERR;
|
if (info) return ARG_ERR;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
free(tau);
|
swzFree(tau);
|
||||||
if (R != X)
|
if (R != X)
|
||||||
if (rt)
|
if (rt)
|
||||||
for (k=n*q, i=n-1; i >= 0; i--)
|
for (k=n*q, i=n-1; i >= 0; i--)
|
||||||
|
@ -1759,7 +1759,7 @@ int bQZ_real(PRECISION *Q, PRECISION *Z, PRECISION *S, PRECISION *T, PRECISION *
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
rtrn=BLAS_LAPACK_ERR;
|
rtrn=BLAS_LAPACK_ERR;
|
||||||
free(work);
|
swzFree(work);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
rtrn=BLAS_LAPACK_ERR;
|
rtrn=BLAS_LAPACK_ERR;
|
||||||
|
@ -1767,9 +1767,9 @@ int bQZ_real(PRECISION *Q, PRECISION *Z, PRECISION *S, PRECISION *T, PRECISION *
|
||||||
else
|
else
|
||||||
rtrn=MEM_ERR;
|
rtrn=MEM_ERR;
|
||||||
|
|
||||||
if (!alpha_r && palpha_r) free(palpha_r);
|
if (!alpha_r && palpha_r) swzFree(palpha_r);
|
||||||
if (!alpha_i && palpha_i) free(palpha_i);
|
if (!alpha_i && palpha_i) swzFree(palpha_i);
|
||||||
if (!beta && pbeta) free(pbeta);
|
if (!beta && pbeta) swzFree(pbeta);
|
||||||
|
|
||||||
return rtrn;
|
return rtrn;
|
||||||
|
|
||||||
|
@ -1914,16 +1914,16 @@ int bReorderQZ_real(int *select, PRECISION *QQ, PRECISION *ZZ, PRECISION *SS, PR
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
rtrn=BLAS_LAPACK_ERR;
|
rtrn=BLAS_LAPACK_ERR;
|
||||||
free(work);
|
swzFree(work);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
rtrn=BLAS_LAPACK_ERR;
|
rtrn=BLAS_LAPACK_ERR;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!alpha_r && palpha_r) free(palpha_r);
|
if (!alpha_r && palpha_r) swzFree(palpha_r);
|
||||||
if (!alpha_i && palpha_i) free(palpha_i);
|
if (!alpha_i && palpha_i) swzFree(palpha_i);
|
||||||
if (!beta && pbeta) free(pbeta);
|
if (!beta && pbeta) swzFree(pbeta);
|
||||||
free(select2);
|
swzFree(select2);
|
||||||
|
|
||||||
return rtrn;
|
return rtrn;
|
||||||
|
|
||||||
|
@ -2138,7 +2138,7 @@ int bSortQZ_real(int *select, PRECISION *QQ, PRECISION *ZZ, PRECISION *SS, PRECI
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
free(work);
|
swzFree(work);
|
||||||
|
|
||||||
if (rtrn == NO_ERR)
|
if (rtrn == NO_ERR)
|
||||||
{
|
{
|
||||||
|
@ -2150,8 +2150,8 @@ int bSortQZ_real(int *select, PRECISION *QQ, PRECISION *ZZ, PRECISION *SS, PRECI
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pairs) free(pairs);
|
if (pairs) swzFree(pairs);
|
||||||
if (gev) free(gev);
|
if (gev) swzFree(gev);
|
||||||
|
|
||||||
return rtrn;
|
return rtrn;
|
||||||
|
|
||||||
|
|
|
@ -815,7 +815,7 @@ int bLU(int *p, PRECISION *x, int m, int n, int xt)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
bTranspose(x,y,m,n,1);
|
bTranspose(x,y,m,n,1);
|
||||||
free(y);
|
swzFree(y);
|
||||||
}
|
}
|
||||||
for (i=(m < n) ? m-1 : n-1; i >= 0; i--) p[i]--;
|
for (i=(m < n) ? m-1 : n-1; i >= 0; i--) p[i]--;
|
||||||
return (info < 0) ? SING_ERR : NO_ERR;
|
return (info < 0) ? SING_ERR : NO_ERR;
|
||||||
|
@ -1710,7 +1710,7 @@ static int bSVD_NumericalRecipes(PRECISION *U, PRECISION *d, PRECISION *V, int m
|
||||||
|
|
||||||
if (its >= MAX_ITER)
|
if (its >= MAX_ITER)
|
||||||
{
|
{
|
||||||
free(rv1);
|
swzFree(rv1);
|
||||||
return ITERATION_ERR;
|
return ITERATION_ERR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1776,7 +1776,7 @@ static int bSVD_NumericalRecipes(PRECISION *U, PRECISION *d, PRECISION *V, int m
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
free(rv1);
|
swzFree(rv1);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -1910,7 +1910,7 @@ int bSVD_new(PRECISION *U, PRECISION *d, PRECISION *V, PRECISION *A, int m, int
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gesvd(&jobu,&jobv,&m_,&n_,A_,&m_,d,U_,&m_,V_,&qv_,work,&k,&info);
|
gesvd(&jobu,&jobv,&m_,&n_,A_,&m_,d,U_,&m_,V_,&qv_,work,&k,&info);
|
||||||
free(work);
|
swzFree(work);
|
||||||
if (info)
|
if (info)
|
||||||
err=BLAS_LAPACK_ERR;
|
err=BLAS_LAPACK_ERR;
|
||||||
else
|
else
|
||||||
|
@ -1935,23 +1935,23 @@ int bSVD_new(PRECISION *U, PRECISION *d, PRECISION *V, PRECISION *A, int m, int
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
free(A_);
|
swzFree(A_);
|
||||||
|
|
||||||
if (transpose)
|
if (transpose)
|
||||||
{
|
{
|
||||||
if (U != V_)
|
if (U != V_)
|
||||||
free(V_);
|
swzFree(V_);
|
||||||
else
|
else
|
||||||
if (V != U_)
|
if (V != U_)
|
||||||
free(U_);
|
swzFree(U_);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (U != U_)
|
if (U != U_)
|
||||||
free(U_);
|
swzFree(U_);
|
||||||
else
|
else
|
||||||
if (V != V_)
|
if (V != V_)
|
||||||
free(V_);
|
swzFree(V_);
|
||||||
}
|
}
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
|
@ -2003,9 +2003,9 @@ int bSVD_new(PRECISION *U, PRECISION *d, PRECISION *V, PRECISION *A, int m, int
|
||||||
/* for (i=m-1; i >= 0; i--) memcpy(U+i*m,NU+i*n,m*sizeof(PRECISION)); */
|
/* for (i=m-1; i >= 0; i--) memcpy(U+i*m,NU+i*n,m*sizeof(PRECISION)); */
|
||||||
/* memcpy(d,nd,m*sizeof(PRECISION)); */
|
/* memcpy(d,nd,m*sizeof(PRECISION)); */
|
||||||
/* rtrn=NO_ERR; */
|
/* rtrn=NO_ERR; */
|
||||||
/* free(nd); */
|
/* swzFree(nd); */
|
||||||
/* } */
|
/* } */
|
||||||
free(NU);
|
swzFree(NU);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (!(NU=(PRECISION*)swzMalloc(m*n*sizeof(PRECISION))))
|
if (!(NU=(PRECISION*)swzMalloc(m*n*sizeof(PRECISION))))
|
||||||
|
@ -2022,7 +2022,7 @@ int bSVD_new(PRECISION *U, PRECISION *d, PRECISION *V, PRECISION *A, int m, int
|
||||||
if (NU[i*n+i] < 0)
|
if (NU[i*n+i] < 0)
|
||||||
for (j=(m-1)*m+i; j >= 0; j-=m) U[j]=-U[j];
|
for (j=(m-1)*m+i; j >= 0; j-=m) U[j]=-U[j];
|
||||||
rtrn=NO_ERR;
|
rtrn=NO_ERR;
|
||||||
free(NU);
|
swzFree(NU);
|
||||||
}
|
}
|
||||||
if (vt) bTransposeInPlace(V,n);
|
if (vt) bTransposeInPlace(V,n);
|
||||||
if (ut) bTransposeInPlace(U,m);
|
if (ut) bTransposeInPlace(U,m);
|
||||||
|
@ -2109,7 +2109,7 @@ int bSVD(PRECISION *U, PRECISION *d, PRECISION *V, PRECISION *A, int m, int n, i
|
||||||
memcpy(X,A,m*n*sizeof(PRECISION));
|
memcpy(X,A,m*n*sizeof(PRECISION));
|
||||||
if (!(iwork=(int*)swzMalloc(8*((m < n) ? m : n)*sizeof(int))))
|
if (!(iwork=(int*)swzMalloc(8*((m < n) ? m : n)*sizeof(int))))
|
||||||
{
|
{
|
||||||
free(X);
|
swzFree(X);
|
||||||
return MEM_ERR;
|
return MEM_ERR;
|
||||||
}
|
}
|
||||||
k=-1;
|
k=-1;
|
||||||
|
@ -2118,28 +2118,28 @@ int bSVD(PRECISION *U, PRECISION *d, PRECISION *V, PRECISION *A, int m, int n, i
|
||||||
/* gesdd(&jobz,&m,&n,X,&m,d,U,&m,V,&n,&opt_size,&k,iwork,&info); */
|
/* gesdd(&jobz,&m,&n,X,&m,d,U,&m,V,&n,&opt_size,&k,iwork,&info); */
|
||||||
/* if (info || !(work=(PRECISION*)swzMalloc((k=(int)opt_size)*sizeof(PRECISION)))) */
|
/* if (info || !(work=(PRECISION*)swzMalloc((k=(int)opt_size)*sizeof(PRECISION)))) */
|
||||||
/* { */
|
/* { */
|
||||||
/* free(iwork); */
|
/* swzFree(iwork); */
|
||||||
/* free(X); */
|
/* swzFree(X); */
|
||||||
/* return info ? BLAS_LAPACK_ERR : MEM_ERR; */
|
/* return info ? BLAS_LAPACK_ERR : MEM_ERR; */
|
||||||
/* } */
|
/* } */
|
||||||
/* gesdd(&jobz,&m,&n,X,&m,d,U,&m,V,&n,work,&k,iwork,&info); */
|
/* gesdd(&jobz,&m,&n,X,&m,d,U,&m,V,&n,work,&k,iwork,&info); */
|
||||||
/* if (info) */
|
/* if (info) */
|
||||||
/* { */
|
/* { */
|
||||||
/* free(work); */
|
/* swzFree(work); */
|
||||||
memcpy(X,A,m*n*sizeof(PRECISION));
|
memcpy(X,A,m*n*sizeof(PRECISION));
|
||||||
k=-1;
|
k=-1;
|
||||||
gesvd(&jobz,&jobz,&m,&n,X,&m,d,U,&m,V,&n,&opt_size,&k,&info);
|
gesvd(&jobz,&jobz,&m,&n,X,&m,d,U,&m,V,&n,&opt_size,&k,&info);
|
||||||
if (info || !(work=(PRECISION*)swzMalloc((k=(int)opt_size)*sizeof(PRECISION))))
|
if (info || !(work=(PRECISION*)swzMalloc((k=(int)opt_size)*sizeof(PRECISION))))
|
||||||
{
|
{
|
||||||
free(iwork);
|
swzFree(iwork);
|
||||||
free(X);
|
swzFree(X);
|
||||||
return info ? BLAS_LAPACK_ERR : MEM_ERR;
|
return info ? BLAS_LAPACK_ERR : MEM_ERR;
|
||||||
}
|
}
|
||||||
gesvd(&jobz,&jobz,&m,&n,X,&m,d,U,&m,V,&n,work,&k,&info);
|
gesvd(&jobz,&jobz,&m,&n,X,&m,d,U,&m,V,&n,work,&k,&info);
|
||||||
if (info)
|
if (info)
|
||||||
{
|
{
|
||||||
free(iwork);
|
swzFree(iwork);
|
||||||
free(X);
|
swzFree(X);
|
||||||
return BLAS_LAPACK_ERR;
|
return BLAS_LAPACK_ERR;
|
||||||
}
|
}
|
||||||
/* } */
|
/* } */
|
||||||
|
@ -2153,28 +2153,28 @@ int bSVD(PRECISION *U, PRECISION *d, PRECISION *V, PRECISION *A, int m, int n, i
|
||||||
/* gesdd(&jobz,&n,&m,X,&n,d,V,&n,U,&m,&opt_size,&k,iwork,&info); */
|
/* gesdd(&jobz,&n,&m,X,&n,d,V,&n,U,&m,&opt_size,&k,iwork,&info); */
|
||||||
/* if (!(work=(PRECISION*)swzMalloc((k=(int)opt_size)*sizeof(PRECISION)))) */
|
/* if (!(work=(PRECISION*)swzMalloc((k=(int)opt_size)*sizeof(PRECISION)))) */
|
||||||
/* { */
|
/* { */
|
||||||
/* free(iwork); */
|
/* swzFree(iwork); */
|
||||||
/* free(X); */
|
/* swzFree(X); */
|
||||||
/* return MEM_ERR; */
|
/* return MEM_ERR; */
|
||||||
/* } */
|
/* } */
|
||||||
/* gesdd(&jobz,&n,&m,X,&n,d,V,&n,U,&m,work,&k,iwork,&info); */
|
/* gesdd(&jobz,&n,&m,X,&n,d,V,&n,U,&m,work,&k,iwork,&info); */
|
||||||
/* if (info) */
|
/* if (info) */
|
||||||
/* { */
|
/* { */
|
||||||
/* free(work); */
|
/* swzFree(work); */
|
||||||
memcpy(X,A,m*n*sizeof(PRECISION));
|
memcpy(X,A,m*n*sizeof(PRECISION));
|
||||||
k=-1;
|
k=-1;
|
||||||
gesvd(&jobz,&jobz,&n,&m,X,&n,d,V,&n,U,&m,&opt_size,&k,&info);
|
gesvd(&jobz,&jobz,&n,&m,X,&n,d,V,&n,U,&m,&opt_size,&k,&info);
|
||||||
if (info || !(work=(PRECISION*)swzMalloc((k=(int)opt_size)*sizeof(PRECISION))))
|
if (info || !(work=(PRECISION*)swzMalloc((k=(int)opt_size)*sizeof(PRECISION))))
|
||||||
{
|
{
|
||||||
free(iwork);
|
swzFree(iwork);
|
||||||
free(X);
|
swzFree(X);
|
||||||
return info ? BLAS_LAPACK_ERR : MEM_ERR;
|
return info ? BLAS_LAPACK_ERR : MEM_ERR;
|
||||||
}
|
}
|
||||||
gesvd(&jobz,&jobz,&n,&m,X,&n,d,V,&n,U,&m,work,&k,&info);
|
gesvd(&jobz,&jobz,&n,&m,X,&n,d,V,&n,U,&m,work,&k,&info);
|
||||||
if (info)
|
if (info)
|
||||||
{
|
{
|
||||||
free(iwork);
|
swzFree(iwork);
|
||||||
free(X);
|
swzFree(X);
|
||||||
return BLAS_LAPACK_ERR;
|
return BLAS_LAPACK_ERR;
|
||||||
}
|
}
|
||||||
/* } */
|
/* } */
|
||||||
|
@ -2183,9 +2183,9 @@ int bSVD(PRECISION *U, PRECISION *d, PRECISION *V, PRECISION *A, int m, int n, i
|
||||||
if (ut)
|
if (ut)
|
||||||
bTransposeInPlace(U,m);
|
bTransposeInPlace(U,m);
|
||||||
}
|
}
|
||||||
free(work);
|
swzFree(work);
|
||||||
free(iwork);
|
swzFree(iwork);
|
||||||
free(X);
|
swzFree(X);
|
||||||
return NO_ERR;
|
return NO_ERR;
|
||||||
#undef gesdd
|
#undef gesdd
|
||||||
#undef gesvd
|
#undef gesvd
|
||||||
|
@ -2236,9 +2236,9 @@ int bSVD(PRECISION *U, PRECISION *d, PRECISION *V, PRECISION *A, int m, int n, i
|
||||||
/* for (i=m-1; i >= 0; i--) memcpy(U+i*m,NU+i*n,m*sizeof(PRECISION)); */
|
/* for (i=m-1; i >= 0; i--) memcpy(U+i*m,NU+i*n,m*sizeof(PRECISION)); */
|
||||||
/* memcpy(d,nd,m*sizeof(PRECISION)); */
|
/* memcpy(d,nd,m*sizeof(PRECISION)); */
|
||||||
/* rtrn=NO_ERR; */
|
/* rtrn=NO_ERR; */
|
||||||
/* free(nd); */
|
/* swzFree(nd); */
|
||||||
/* } */
|
/* } */
|
||||||
free(NU);
|
swzFree(NU);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (!(NU=(PRECISION*)swzMalloc(m*n*sizeof(PRECISION))))
|
if (!(NU=(PRECISION*)swzMalloc(m*n*sizeof(PRECISION))))
|
||||||
|
@ -2255,7 +2255,7 @@ int bSVD(PRECISION *U, PRECISION *d, PRECISION *V, PRECISION *A, int m, int n, i
|
||||||
if (NU[i*n+i] < 0)
|
if (NU[i*n+i] < 0)
|
||||||
for (j=(m-1)*m+i; j >= 0; j-=m) U[j]=-U[j];
|
for (j=(m-1)*m+i; j >= 0; j-=m) U[j]=-U[j];
|
||||||
rtrn=NO_ERR;
|
rtrn=NO_ERR;
|
||||||
free(NU);
|
swzFree(NU);
|
||||||
}
|
}
|
||||||
if (vt) bTransposeInPlace(V,n);
|
if (vt) bTransposeInPlace(V,n);
|
||||||
if (ut) bTransposeInPlace(U,m);
|
if (ut) bTransposeInPlace(U,m);
|
||||||
|
@ -2359,7 +2359,7 @@ static int bQR_NumericalRecipes(PRECISION *Q, PRECISION *R, int m, int n)
|
||||||
for (i=k+1; i < m; i++)
|
for (i=k+1; i < m; i++)
|
||||||
R[i*n+k]=0;
|
R[i*n+k]=0;
|
||||||
|
|
||||||
free(diag);
|
swzFree(diag);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -2493,7 +2493,7 @@ int bQR(PRECISION *Q, PRECISION *R, PRECISION *X, int m, int n, int q, int qt, i
|
||||||
#endif
|
#endif
|
||||||
if (!(work=(PRECISION*)swzMalloc((lwork=(int)opt_size)*sizeof(PRECISION))))
|
if (!(work=(PRECISION*)swzMalloc((lwork=(int)opt_size)*sizeof(PRECISION))))
|
||||||
{
|
{
|
||||||
free(tau);
|
swzFree(tau);
|
||||||
return MEM_ERR;
|
return MEM_ERR;
|
||||||
}
|
}
|
||||||
#if (PRECISION_SIZE == 4)
|
#if (PRECISION_SIZE == 4)
|
||||||
|
@ -2501,10 +2501,10 @@ int bQR(PRECISION *Q, PRECISION *R, PRECISION *X, int m, int n, int q, int qt, i
|
||||||
#else
|
#else
|
||||||
dgeqrf(&m,&n,X,&m,tau,work,&lwork,&info);
|
dgeqrf(&m,&n,X,&m,tau,work,&lwork,&info);
|
||||||
#endif
|
#endif
|
||||||
free(work);
|
swzFree(work);
|
||||||
if (info)
|
if (info)
|
||||||
{
|
{
|
||||||
free(tau);
|
swzFree(tau);
|
||||||
return ARG_ERR;
|
return ARG_ERR;
|
||||||
}
|
}
|
||||||
if (Q)
|
if (Q)
|
||||||
|
@ -2514,7 +2514,7 @@ int bQR(PRECISION *Q, PRECISION *R, PRECISION *X, int m, int n, int q, int qt, i
|
||||||
else
|
else
|
||||||
if (!(ptr=(PRECISION*)swzMalloc(m*q*sizeof(PRECISION))))
|
if (!(ptr=(PRECISION*)swzMalloc(m*q*sizeof(PRECISION))))
|
||||||
{
|
{
|
||||||
free(tau);
|
swzFree(tau);
|
||||||
return MEM_ERR;
|
return MEM_ERR;
|
||||||
}
|
}
|
||||||
memcpy(ptr,X,m*p*sizeof(PRECISION));
|
memcpy(ptr,X,m*p*sizeof(PRECISION));
|
||||||
|
@ -2526,8 +2526,8 @@ int bQR(PRECISION *Q, PRECISION *R, PRECISION *X, int m, int n, int q, int qt, i
|
||||||
#endif
|
#endif
|
||||||
if (!(work=(PRECISION*)swzMalloc((lwork=(int)opt_size)*sizeof(PRECISION))))
|
if (!(work=(PRECISION*)swzMalloc((lwork=(int)opt_size)*sizeof(PRECISION))))
|
||||||
{
|
{
|
||||||
if (!qt) free(ptr);
|
if (!qt) swzFree(ptr);
|
||||||
free(tau);
|
swzFree(tau);
|
||||||
return MEM_ERR;
|
return MEM_ERR;
|
||||||
}
|
}
|
||||||
#if (PRECISION_SIZE == 4)
|
#if (PRECISION_SIZE == 4)
|
||||||
|
@ -2535,17 +2535,17 @@ int bQR(PRECISION *Q, PRECISION *R, PRECISION *X, int m, int n, int q, int qt, i
|
||||||
#else
|
#else
|
||||||
dorgqr(&m,&q,&p,ptr,&m,tau,work,&lwork,&info);
|
dorgqr(&m,&q,&p,ptr,&m,tau,work,&lwork,&info);
|
||||||
#endif
|
#endif
|
||||||
free(work);
|
swzFree(work);
|
||||||
if (!qt)
|
if (!qt)
|
||||||
{
|
{
|
||||||
bTranspose(Q,ptr,m,q,1);
|
bTranspose(Q,ptr,m,q,1);
|
||||||
free(ptr);
|
swzFree(ptr);
|
||||||
}
|
}
|
||||||
free(tau);
|
swzFree(tau);
|
||||||
if (info) return ARG_ERR;
|
if (info) return ARG_ERR;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
free(tau);
|
swzFree(tau);
|
||||||
if (R != X)
|
if (R != X)
|
||||||
if (rt)
|
if (rt)
|
||||||
for (k=q*n, j=n-1; j >= 0; j--)
|
for (k=q*n, j=n-1; j >= 0; j--)
|
||||||
|
@ -2575,7 +2575,7 @@ int bQR(PRECISION *Q, PRECISION *R, PRECISION *X, int m, int n, int q, int qt, i
|
||||||
#endif
|
#endif
|
||||||
if (!(work=(PRECISION*)swzMalloc((lwork=(int)opt_size)*sizeof(PRECISION))))
|
if (!(work=(PRECISION*)swzMalloc((lwork=(int)opt_size)*sizeof(PRECISION))))
|
||||||
{
|
{
|
||||||
free(tau);
|
swzFree(tau);
|
||||||
return MEM_ERR;
|
return MEM_ERR;
|
||||||
}
|
}
|
||||||
#if (PRECISION_SIZE == 4)
|
#if (PRECISION_SIZE == 4)
|
||||||
|
@ -2583,10 +2583,10 @@ int bQR(PRECISION *Q, PRECISION *R, PRECISION *X, int m, int n, int q, int qt, i
|
||||||
#else
|
#else
|
||||||
dgelqf(&n,&m,X,&n,tau,work,&lwork,&info);
|
dgelqf(&n,&m,X,&n,tau,work,&lwork,&info);
|
||||||
#endif
|
#endif
|
||||||
free(work);
|
swzFree(work);
|
||||||
if (info)
|
if (info)
|
||||||
{
|
{
|
||||||
free(tau);
|
swzFree(tau);
|
||||||
return ARG_ERR;
|
return ARG_ERR;
|
||||||
}
|
}
|
||||||
if (Q)
|
if (Q)
|
||||||
|
@ -2596,7 +2596,7 @@ int bQR(PRECISION *Q, PRECISION *R, PRECISION *X, int m, int n, int q, int qt, i
|
||||||
else
|
else
|
||||||
if (!(ptr=(PRECISION*)swzMalloc(m*q*sizeof(PRECISION))))
|
if (!(ptr=(PRECISION*)swzMalloc(m*q*sizeof(PRECISION))))
|
||||||
{
|
{
|
||||||
free(tau);
|
swzFree(tau);
|
||||||
return MEM_ERR;
|
return MEM_ERR;
|
||||||
}
|
}
|
||||||
if (q == n)
|
if (q == n)
|
||||||
|
@ -2618,8 +2618,8 @@ int bQR(PRECISION *Q, PRECISION *R, PRECISION *X, int m, int n, int q, int qt, i
|
||||||
#endif
|
#endif
|
||||||
if (!(work=(PRECISION*)swzMalloc((lwork=(int)opt_size)*sizeof(PRECISION))))
|
if (!(work=(PRECISION*)swzMalloc((lwork=(int)opt_size)*sizeof(PRECISION))))
|
||||||
{
|
{
|
||||||
if (!qt) free(ptr);
|
if (!qt) swzFree(ptr);
|
||||||
free(tau);
|
swzFree(tau);
|
||||||
return MEM_ERR;
|
return MEM_ERR;
|
||||||
}
|
}
|
||||||
#if (PRECISION_SIZE == 4)
|
#if (PRECISION_SIZE == 4)
|
||||||
|
@ -2627,17 +2627,17 @@ int bQR(PRECISION *Q, PRECISION *R, PRECISION *X, int m, int n, int q, int qt, i
|
||||||
#else
|
#else
|
||||||
dorglq(&q,&m,&p,ptr,&q,tau,work,&lwork,&info);
|
dorglq(&q,&m,&p,ptr,&q,tau,work,&lwork,&info);
|
||||||
#endif
|
#endif
|
||||||
free(work);
|
swzFree(work);
|
||||||
if (qt)
|
if (qt)
|
||||||
{
|
{
|
||||||
bTranspose(Q,ptr,q,m,1);
|
bTranspose(Q,ptr,q,m,1);
|
||||||
free(ptr);
|
swzFree(ptr);
|
||||||
}
|
}
|
||||||
free(tau);
|
swzFree(tau);
|
||||||
if (info) return ARG_ERR;
|
if (info) return ARG_ERR;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
free(tau);
|
swzFree(tau);
|
||||||
if (R != X)
|
if (R != X)
|
||||||
if (rt)
|
if (rt)
|
||||||
for (k=n*q, i=n-1; i >= 0; i--)
|
for (k=n*q, i=n-1; i >= 0; i--)
|
||||||
|
@ -2675,7 +2675,7 @@ int bQR(PRECISION *Q, PRECISION *R, PRECISION *X, int m, int n, int q, int qt, i
|
||||||
{
|
{
|
||||||
if (!(NR=(PRECISION*)swzMalloc(m*n*sizeof(PRECISION))))
|
if (!(NR=(PRECISION*)swzMalloc(m*n*sizeof(PRECISION))))
|
||||||
{
|
{
|
||||||
if (NQ != Q) free(NQ);
|
if (NQ != Q) swzFree(NQ);
|
||||||
return MEM_ERR;
|
return MEM_ERR;
|
||||||
}
|
}
|
||||||
if (xt)
|
if (xt)
|
||||||
|
@ -2704,7 +2704,7 @@ int bQR(PRECISION *Q, PRECISION *R, PRECISION *X, int m, int n, int q, int qt, i
|
||||||
*pQ=NQ[i];
|
*pQ=NQ[i];
|
||||||
else
|
else
|
||||||
for (i=m-1; i >= 0; i--) memcpy(Q+i*n,NQ+i*m,n*sizeof(PRECISION));
|
for (i=m-1; i >= 0; i--) memcpy(Q+i*n,NQ+i*m,n*sizeof(PRECISION));
|
||||||
free(NQ);
|
swzFree(NQ);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (qt)
|
if (qt)
|
||||||
|
@ -2713,13 +2713,13 @@ int bQR(PRECISION *Q, PRECISION *R, PRECISION *X, int m, int n, int q, int qt, i
|
||||||
if (rt)
|
if (rt)
|
||||||
{
|
{
|
||||||
bTranspose(R,NR,q,n,0);
|
bTranspose(R,NR,q,n,0);
|
||||||
free(NR);
|
swzFree(NR);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (q != m)
|
if (q != m)
|
||||||
{
|
{
|
||||||
memcpy(R,NR,n*n*sizeof(PRECISION));
|
memcpy(R,NR,n*n*sizeof(PRECISION));
|
||||||
free(NR);
|
swzFree(NR);
|
||||||
}
|
}
|
||||||
|
|
||||||
return NO_ERR;
|
return NO_ERR;
|
||||||
|
@ -3587,7 +3587,7 @@ dest2: fstp PRECISION_WORD ptr [edx] // pop accumulated v
|
||||||
/* memcpy(X,A,m*n*sizeof(PRECISION)); */
|
/* memcpy(X,A,m*n*sizeof(PRECISION)); */
|
||||||
/* if (!(iwork=(int*)swzMalloc(8*((m < n) ? m : n)*sizeof(int)))) */
|
/* if (!(iwork=(int*)swzMalloc(8*((m < n) ? m : n)*sizeof(int)))) */
|
||||||
/* { */
|
/* { */
|
||||||
/* free(X); */
|
/* swzFree(X); */
|
||||||
/* return MEM_ERR; */
|
/* return MEM_ERR; */
|
||||||
/* } */
|
/* } */
|
||||||
/* k=-1; */
|
/* k=-1; */
|
||||||
|
@ -3600,8 +3600,8 @@ dest2: fstp PRECISION_WORD ptr [edx] // pop accumulated v
|
||||||
/* #endif */
|
/* #endif */
|
||||||
/* if (info || !(work=(PRECISION*)swzMalloc((k=(int)opt_size)*sizeof(PRECISION)))) */
|
/* if (info || !(work=(PRECISION*)swzMalloc((k=(int)opt_size)*sizeof(PRECISION)))) */
|
||||||
/* { */
|
/* { */
|
||||||
/* free(iwork); */
|
/* swzFree(iwork); */
|
||||||
/* free(X); */
|
/* swzFree(X); */
|
||||||
/* return info ? BLAS_LAPACK_ERR : MEM_ERR; */
|
/* return info ? BLAS_LAPACK_ERR : MEM_ERR; */
|
||||||
/* } */
|
/* } */
|
||||||
/* #if (PRECISION_SIZE == 4) */
|
/* #if (PRECISION_SIZE == 4) */
|
||||||
|
@ -3611,7 +3611,7 @@ dest2: fstp PRECISION_WORD ptr [edx] // pop accumulated v
|
||||||
/* #endif */
|
/* #endif */
|
||||||
/* if (info) */
|
/* if (info) */
|
||||||
/* { */
|
/* { */
|
||||||
/* free(work); */
|
/* swzFree(work); */
|
||||||
/* memcpy(X,A,m*n*sizeof(PRECISION)); */
|
/* memcpy(X,A,m*n*sizeof(PRECISION)); */
|
||||||
/* k=-1; */
|
/* k=-1; */
|
||||||
/* #if (PRECISION_SIZE == 4) */
|
/* #if (PRECISION_SIZE == 4) */
|
||||||
|
@ -3621,8 +3621,8 @@ dest2: fstp PRECISION_WORD ptr [edx] // pop accumulated v
|
||||||
/* #endif */
|
/* #endif */
|
||||||
/* if (info || !(work=(PRECISION*)swzMalloc((k=(int)opt_size)*sizeof(PRECISION)))) */
|
/* if (info || !(work=(PRECISION*)swzMalloc((k=(int)opt_size)*sizeof(PRECISION)))) */
|
||||||
/* { */
|
/* { */
|
||||||
/* free(iwork); */
|
/* swzFree(iwork); */
|
||||||
/* free(X); */
|
/* swzFree(X); */
|
||||||
/* return info ? BLAS_LAPACK_ERR : MEM_ERR; */
|
/* return info ? BLAS_LAPACK_ERR : MEM_ERR; */
|
||||||
/* } */
|
/* } */
|
||||||
/* #if (PRECISION_SIZE == 4) */
|
/* #if (PRECISION_SIZE == 4) */
|
||||||
|
@ -3632,8 +3632,8 @@ dest2: fstp PRECISION_WORD ptr [edx] // pop accumulated v
|
||||||
/* #endif */
|
/* #endif */
|
||||||
/* if (info) */
|
/* if (info) */
|
||||||
/* { */
|
/* { */
|
||||||
/* free(iwork); */
|
/* swzFree(iwork); */
|
||||||
/* free(X); */
|
/* swzFree(X); */
|
||||||
/* return BLAS_LAPACK_ERR; */
|
/* return BLAS_LAPACK_ERR; */
|
||||||
/* } */
|
/* } */
|
||||||
/* } */
|
/* } */
|
||||||
|
@ -3651,8 +3651,8 @@ dest2: fstp PRECISION_WORD ptr [edx] // pop accumulated v
|
||||||
/* #endif */
|
/* #endif */
|
||||||
/* if (!(work=(PRECISION*)swzMalloc((k=(int)opt_size)*sizeof(PRECISION)))) */
|
/* if (!(work=(PRECISION*)swzMalloc((k=(int)opt_size)*sizeof(PRECISION)))) */
|
||||||
/* { */
|
/* { */
|
||||||
/* free(iwork); */
|
/* swzFree(iwork); */
|
||||||
/* free(X); */
|
/* swzFree(X); */
|
||||||
/* return MEM_ERR; */
|
/* return MEM_ERR; */
|
||||||
/* } */
|
/* } */
|
||||||
/* #if (PRECISION_SIZE == 4) */
|
/* #if (PRECISION_SIZE == 4) */
|
||||||
|
@ -3662,7 +3662,7 @@ dest2: fstp PRECISION_WORD ptr [edx] // pop accumulated v
|
||||||
/* #endif */
|
/* #endif */
|
||||||
/* if (info) */
|
/* if (info) */
|
||||||
/* { */
|
/* { */
|
||||||
/* free(work); */
|
/* swzFree(work); */
|
||||||
/* memcpy(X,A,m*n*sizeof(PRECISION)); */
|
/* memcpy(X,A,m*n*sizeof(PRECISION)); */
|
||||||
/* k=-1; */
|
/* k=-1; */
|
||||||
/* #if (PRECISION_SIZE == 4) */
|
/* #if (PRECISION_SIZE == 4) */
|
||||||
|
@ -3672,8 +3672,8 @@ dest2: fstp PRECISION_WORD ptr [edx] // pop accumulated v
|
||||||
/* #endif */
|
/* #endif */
|
||||||
/* if (info || !(work=(PRECISION*)swzMalloc((k=(int)opt_size)*sizeof(PRECISION)))) */
|
/* if (info || !(work=(PRECISION*)swzMalloc((k=(int)opt_size)*sizeof(PRECISION)))) */
|
||||||
/* { */
|
/* { */
|
||||||
/* free(iwork); */
|
/* swzFree(iwork); */
|
||||||
/* free(X); */
|
/* swzFree(X); */
|
||||||
/* return info ? BLAS_LAPACK_ERR : MEM_ERR; */
|
/* return info ? BLAS_LAPACK_ERR : MEM_ERR; */
|
||||||
/* } */
|
/* } */
|
||||||
/* #if (PRECISION_SIZE == 4) */
|
/* #if (PRECISION_SIZE == 4) */
|
||||||
|
@ -3683,8 +3683,8 @@ dest2: fstp PRECISION_WORD ptr [edx] // pop accumulated v
|
||||||
/* #endif */
|
/* #endif */
|
||||||
/* if (info) */
|
/* if (info) */
|
||||||
/* { */
|
/* { */
|
||||||
/* free(iwork); */
|
/* swzFree(iwork); */
|
||||||
/* free(X); */
|
/* swzFree(X); */
|
||||||
/* return BLAS_LAPACK_ERR; */
|
/* return BLAS_LAPACK_ERR; */
|
||||||
/* } */
|
/* } */
|
||||||
/* } */
|
/* } */
|
||||||
|
@ -3693,7 +3693,7 @@ dest2: fstp PRECISION_WORD ptr [edx] // pop accumulated v
|
||||||
/* if (ut) */
|
/* if (ut) */
|
||||||
/* bTransposeInPlace(U,m); */
|
/* bTransposeInPlace(U,m); */
|
||||||
/* } */
|
/* } */
|
||||||
/* free(work); */
|
/* swzFree(work); */
|
||||||
/* free(iwork); */
|
/* swzFree(iwork); */
|
||||||
/* free(X); */
|
/* swzFree(X); */
|
||||||
/* return NO_ERR; */
|
/* return NO_ERR; */
|
||||||
|
|
|
@ -62,7 +62,7 @@ TVector CreateVector(int m)
|
||||||
/**/
|
/**/
|
||||||
void FreeVector(TVector x)
|
void FreeVector(TVector x)
|
||||||
{
|
{
|
||||||
if (x) free(x);
|
if (x) swzFree(x);
|
||||||
}
|
}
|
||||||
/**/
|
/**/
|
||||||
TMatrix CreateMatrix(int m, int n)
|
TMatrix CreateMatrix(int m, int n)
|
||||||
|
@ -85,7 +85,7 @@ TMatrix CreateMatrix(int m, int n)
|
||||||
/**/
|
/**/
|
||||||
void FreeMatrix(TMatrix X)
|
void FreeMatrix(TMatrix X)
|
||||||
{
|
{
|
||||||
if (X) free(X);
|
if (X) swzFree(X);
|
||||||
}
|
}
|
||||||
/**/
|
/**/
|
||||||
TPermutation CreatePermutation(int m)
|
TPermutation CreatePermutation(int m)
|
||||||
|
@ -108,7 +108,7 @@ TPermutation CreatePermutation(int m)
|
||||||
/**/
|
/**/
|
||||||
void FreePermutation(TPermutation X)
|
void FreePermutation(TPermutation X)
|
||||||
{
|
{
|
||||||
if (X) free(X);
|
if (X) swzFree(X);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
/*-----------------------------------------------------------------------------*/
|
/*-----------------------------------------------------------------------------*/
|
||||||
|
@ -127,7 +127,7 @@ TVector CreateVector(int m)
|
||||||
DimV(x)=m;
|
DimV(x)=m;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
free(x);
|
swzFree(x);
|
||||||
dw_Error(MEM_ERR);
|
dw_Error(MEM_ERR);
|
||||||
return (TVector)NULL;
|
return (TVector)NULL;
|
||||||
}
|
}
|
||||||
|
@ -140,8 +140,8 @@ void FreeVector(TVector x)
|
||||||
{
|
{
|
||||||
if (x)
|
if (x)
|
||||||
{
|
{
|
||||||
if (x->x) free(x->x);
|
if (x->x) swzFree(x->x);
|
||||||
free(x);
|
swzFree(x);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/**/
|
/**/
|
||||||
|
@ -164,7 +164,7 @@ TMatrix CreateMatrix(int m, int n)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
free(X);
|
swzFree(X);
|
||||||
dw_Error(MEM_ERR);
|
dw_Error(MEM_ERR);
|
||||||
return (TMatrix)NULL;
|
return (TMatrix)NULL;
|
||||||
}
|
}
|
||||||
|
@ -177,8 +177,8 @@ void FreeMatrix(TMatrix X)
|
||||||
{
|
{
|
||||||
if (X)
|
if (X)
|
||||||
{
|
{
|
||||||
if (X->x) free(X->x);
|
if (X->x) swzFree(X->x);
|
||||||
free(X);
|
swzFree(X);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/**/
|
/**/
|
||||||
|
@ -198,7 +198,7 @@ TPermutation CreatePermutation(int m)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
free(X);
|
swzFree(X);
|
||||||
dw_Error(MEM_ERR);
|
dw_Error(MEM_ERR);
|
||||||
return (TPermutation)NULL;
|
return (TPermutation)NULL;
|
||||||
}
|
}
|
||||||
|
@ -211,8 +211,8 @@ void FreePermutation(TPermutation X)
|
||||||
{
|
{
|
||||||
if (X)
|
if (X)
|
||||||
{
|
{
|
||||||
if (X->x) free(X->x);
|
if (X->x) swzFree(X->x);
|
||||||
free(X);
|
swzFree(X);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -236,7 +236,7 @@ TVector CreateVector(int m)
|
||||||
/**/
|
/**/
|
||||||
void FreeVector(TVector x)
|
void FreeVector(TVector x)
|
||||||
{
|
{
|
||||||
if (x) free((int *)x-1);
|
if (x) swzFree((int *)x-1);
|
||||||
}
|
}
|
||||||
/**/
|
/**/
|
||||||
TMatrix CreateMatrix(int m, int n)
|
TMatrix CreateMatrix(int m, int n)
|
||||||
|
@ -262,7 +262,7 @@ TMatrix CreateMatrix(int m, int n)
|
||||||
/**/
|
/**/
|
||||||
void FreeMatrix(TMatrix X)
|
void FreeMatrix(TMatrix X)
|
||||||
{
|
{
|
||||||
if (X) free((int *)X-2);
|
if (X) swzFree((int *)X-2);
|
||||||
}
|
}
|
||||||
/**/
|
/**/
|
||||||
TPermutation CreatePermutation(int m)
|
TPermutation CreatePermutation(int m)
|
||||||
|
@ -288,7 +288,7 @@ void FreePermutation(TPermutation X)
|
||||||
if (!X)
|
if (!X)
|
||||||
dw_Error(NULL_ERR);
|
dw_Error(NULL_ERR);
|
||||||
else
|
else
|
||||||
free(X-2);
|
swzFree(X-2);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
/*-----------------------------------------------------------------------------*/
|
/*-----------------------------------------------------------------------------*/
|
||||||
|
@ -305,7 +305,7 @@ TVector CreateVector(int m)
|
||||||
if (x=(TVector)swzMalloc(sizeof(TSdvector)))
|
if (x=(TVector)swzMalloc(sizeof(TSdvector)))
|
||||||
if (!(pElementV(x)=(PRECISION*)swzMalloc(m*sizeof(PRECISION))))
|
if (!(pElementV(x)=(PRECISION*)swzMalloc(m*sizeof(PRECISION))))
|
||||||
{
|
{
|
||||||
free(x);
|
swzFree(x);
|
||||||
dw_Error(MEM_ERR);
|
dw_Error(MEM_ERR);
|
||||||
return (TVector)NULL;
|
return (TVector)NULL;
|
||||||
}
|
}
|
||||||
|
@ -323,8 +323,8 @@ void FreeVector(TVector x)
|
||||||
{
|
{
|
||||||
if (x)
|
if (x)
|
||||||
{
|
{
|
||||||
if (pElementV(x)) free(pElementV(x));
|
if (pElementV(x)) swzFree(pElementV(x));
|
||||||
free(x);
|
swzFree(x);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/**/
|
/**/
|
||||||
|
@ -339,7 +339,7 @@ TMatrix CreateMatrix(int m, int n)
|
||||||
if (X=(TMatrix)swzMalloc(sizeof(TSdmatrix)))
|
if (X=(TMatrix)swzMalloc(sizeof(TSdmatrix)))
|
||||||
if (!(pElementM(X)=(PRECISION*)swzMalloc(m*n*sizeof(PRECISION))))
|
if (!(pElementM(X)=(PRECISION*)swzMalloc(m*n*sizeof(PRECISION))))
|
||||||
{
|
{
|
||||||
free(X);
|
swzFree(X);
|
||||||
dw_Error(MEM_ERR);
|
dw_Error(MEM_ERR);
|
||||||
return (TMatrix)NULL;
|
return (TMatrix)NULL;
|
||||||
}
|
}
|
||||||
|
@ -374,15 +374,15 @@ TPermutation CreatePermutation(int m)
|
||||||
/**/
|
/**/
|
||||||
void FreePermutation(TPermutation X)
|
void FreePermutation(TPermutation X)
|
||||||
{
|
{
|
||||||
if (X) free(X);
|
if (X) swzFree(X);
|
||||||
}
|
}
|
||||||
/**/
|
/**/
|
||||||
void FreeMatrix(TMatrix X)
|
void FreeMatrix(TMatrix X)
|
||||||
{
|
{
|
||||||
if (X)
|
if (X)
|
||||||
{
|
{
|
||||||
if (pElementM(X)) free(pElementM(X));
|
if (pElementM(X)) swzFree(pElementM(X));
|
||||||
free(X);
|
swzFree(X);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -1388,7 +1388,7 @@ TMatrix UpdateMS(TMatrix X, TMatrix Y, PRECISION a)
|
||||||
}
|
}
|
||||||
bTranspose(z,pElementM(Y),RowM(Y),ColM(Y),MajorForm(Y));
|
bTranspose(z,pElementM(Y),RowM(Y),ColM(Y),MajorForm(Y));
|
||||||
bLinearUpdateScalar(pElementM(X),z,a,RowM(Y)*ColM(Y));
|
bLinearUpdateScalar(pElementM(X),z,a,RowM(Y)*ColM(Y));
|
||||||
free(z);
|
swzFree(z);
|
||||||
}
|
}
|
||||||
return X;
|
return X;
|
||||||
}
|
}
|
||||||
|
@ -1497,7 +1497,7 @@ TMatrix LinearCombinationMM(TMatrix X, PRECISION a, TMatrix Y, PRECISION b, TMat
|
||||||
}
|
}
|
||||||
bTranspose(p,pElementM(Y),RowM(Y),ColM(Y),MajorForm(Y));
|
bTranspose(p,pElementM(Y),RowM(Y),ColM(Y),MajorForm(Y));
|
||||||
bLinearCombination(pElementM(X),a,p,b,pElementM(Z),RowM(Z)*ColM(Z));
|
bLinearCombination(pElementM(X),a,p,b,pElementM(Z),RowM(Z)*ColM(Z));
|
||||||
free(p);
|
swzFree(p);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (X == Y)
|
if (X == Y)
|
||||||
|
@ -1510,7 +1510,7 @@ TMatrix LinearCombinationMM(TMatrix X, PRECISION a, TMatrix Y, PRECISION b, TMat
|
||||||
}
|
}
|
||||||
bTranspose(p,pElementM(Z),RowM(Z),ColM(Z),MajorForm(Z));
|
bTranspose(p,pElementM(Z),RowM(Z),ColM(Z),MajorForm(Z));
|
||||||
bLinearCombination(pElementM(X),a,pElementM(Y),b,p,RowM(Z)*ColM(Z));
|
bLinearCombination(pElementM(X),a,pElementM(Y),b,p,RowM(Z)*ColM(Z));
|
||||||
free(p);
|
swzFree(p);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1654,7 +1654,7 @@ TVector ProductVM(TVector x, TVector y, TMatrix Z)
|
||||||
}
|
}
|
||||||
bMatrixMultiply(ptr,pElementV(y),pElementM(Z),1,DimV(x),DimV(y),0,0,MajorForm(Z));
|
bMatrixMultiply(ptr,pElementV(y),pElementM(Z),1,DimV(x),DimV(y),0,0,MajorForm(Z));
|
||||||
memcpy(pElementV(x),ptr,DimV(x)*sizeof(PRECISION));
|
memcpy(pElementV(x),ptr,DimV(x)*sizeof(PRECISION));
|
||||||
free(ptr);
|
swzFree(ptr);
|
||||||
return x;
|
return x;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1712,7 +1712,7 @@ TVector ProductMV(TVector x, TMatrix Y, TVector z)
|
||||||
}
|
}
|
||||||
bMatrixMultiply(ptr,pElementM(Y),pElementV(z),DimV(x),1,DimV(z),1,MajorForm(Y),1);
|
bMatrixMultiply(ptr,pElementM(Y),pElementV(z),DimV(x),1,DimV(z),1,MajorForm(Y),1);
|
||||||
memcpy(pElementV(x),ptr,DimV(x)*sizeof(PRECISION));
|
memcpy(pElementV(x),ptr,DimV(x)*sizeof(PRECISION));
|
||||||
free(ptr);
|
swzFree(ptr);
|
||||||
return x;
|
return x;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1772,7 +1772,7 @@ TMatrix ProductMM(TMatrix X, TMatrix Y, TMatrix Z)
|
||||||
}
|
}
|
||||||
bMatrixMultiply(ptr,pElementM(Y),pElementM(Z),RowM(X),ColM(X),ColM(Y),MajorForm(X),MajorForm(Y),MajorForm(Z));
|
bMatrixMultiply(ptr,pElementM(Y),pElementM(Z),RowM(X),ColM(X),ColM(Y),MajorForm(X),MajorForm(Y),MajorForm(Z));
|
||||||
memcpy(pElementM(X),ptr,RowM(X)*ColM(X)*sizeof(PRECISION));
|
memcpy(pElementM(X),ptr,RowM(X)*ColM(X)*sizeof(PRECISION));
|
||||||
free(ptr);
|
swzFree(ptr);
|
||||||
return X;
|
return X;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1838,7 +1838,7 @@ TMatrix TransposeProductMM(TMatrix X, TMatrix Y, TMatrix Z)
|
||||||
}
|
}
|
||||||
bMatrixMultiply(ptr,pElementM(Y),pElementM(Z),RowM(X),ColM(X),RowM(Y),MajorForm(X),1^MajorForm(Y),MajorForm(Z));
|
bMatrixMultiply(ptr,pElementM(Y),pElementM(Z),RowM(X),ColM(X),RowM(Y),MajorForm(X),1^MajorForm(Y),MajorForm(Z));
|
||||||
memcpy(pElementM(X),ptr,RowM(X)*ColM(X)*sizeof(PRECISION));
|
memcpy(pElementM(X),ptr,RowM(X)*ColM(X)*sizeof(PRECISION));
|
||||||
free(ptr);
|
swzFree(ptr);
|
||||||
return X;
|
return X;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1898,7 +1898,7 @@ TMatrix ProductTransposeMM(TMatrix X, TMatrix Y, TMatrix Z)
|
||||||
}
|
}
|
||||||
bMatrixMultiply(ptr,pElementM(Y),pElementM(Z),RowM(X),ColM(X),ColM(Y),MajorForm(X),MajorForm(Y),1^MajorForm(Z));
|
bMatrixMultiply(ptr,pElementM(Y),pElementM(Z),RowM(X),ColM(X),ColM(Y),MajorForm(X),MajorForm(Y),1^MajorForm(Z));
|
||||||
memcpy(pElementM(X),ptr,RowM(X)*ColM(X)*sizeof(PRECISION));
|
memcpy(pElementM(X),ptr,RowM(X)*ColM(X)*sizeof(PRECISION));
|
||||||
free(ptr);
|
swzFree(ptr);
|
||||||
return X;
|
return X;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1960,9 +1960,9 @@ TVector InverseProductMV(TVector x, TMatrix Y, TVector z)
|
||||||
bSolveUnitTriangular(LU,pElementV(rtrn),DimV(rtrn),1,0,MajorForm(Y),1);
|
bSolveUnitTriangular(LU,pElementV(rtrn),DimV(rtrn),1,0,MajorForm(Y),1);
|
||||||
bSolveTriangular(LU,pElementV(rtrn),DimV(rtrn),1,1,MajorForm(Y),1);
|
bSolveTriangular(LU,pElementV(rtrn),DimV(rtrn),1,1,MajorForm(Y),1);
|
||||||
}
|
}
|
||||||
free(LU);
|
swzFree(LU);
|
||||||
}
|
}
|
||||||
free(p);
|
swzFree(p);
|
||||||
}
|
}
|
||||||
return rtrn;
|
return rtrn;
|
||||||
}
|
}
|
||||||
|
@ -2092,9 +2092,9 @@ TMatrix InverseProductMM(TMatrix X, TMatrix Y, TMatrix Z)
|
||||||
bSolveUnitTriangular(LU,pElementM(rtrn),RowM(rtrn),ColM(rtrn),0,MajorFormLU,MajorForm(rtrn));
|
bSolveUnitTriangular(LU,pElementM(rtrn),RowM(rtrn),ColM(rtrn),0,MajorFormLU,MajorForm(rtrn));
|
||||||
bSolveTriangular(LU,pElementM(rtrn),RowM(rtrn),ColM(rtrn),1,MajorFormLU,MajorForm(rtrn));
|
bSolveTriangular(LU,pElementM(rtrn),RowM(rtrn),ColM(rtrn),1,MajorFormLU,MajorForm(rtrn));
|
||||||
}
|
}
|
||||||
free(LU);
|
swzFree(LU);
|
||||||
}
|
}
|
||||||
free(p);
|
swzFree(p);
|
||||||
}
|
}
|
||||||
return rtrn;
|
return rtrn;
|
||||||
}
|
}
|
||||||
|
@ -2141,7 +2141,7 @@ TMatrix InverseProductUM(TMatrix X, TMatrix Y, TMatrix Z)
|
||||||
rtrn=(TMatrix)NULL;
|
rtrn=(TMatrix)NULL;
|
||||||
dw_Error(err);
|
dw_Error(err);
|
||||||
}
|
}
|
||||||
free(ptr);
|
swzFree(ptr);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (rtrn=((X == Z) ? X : EquateMatrix(X,Z)))
|
if (rtrn=((X == Z) ? X : EquateMatrix(X,Z)))
|
||||||
|
@ -2196,7 +2196,7 @@ TMatrix InverseProductLM(TMatrix X, TMatrix Y, TMatrix Z)
|
||||||
rtrn=(TMatrix)NULL;
|
rtrn=(TMatrix)NULL;
|
||||||
dw_Error(err);
|
dw_Error(err);
|
||||||
}
|
}
|
||||||
free(ptr);
|
swzFree(ptr);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (rtrn=((X == Z) ? X : EquateMatrix(X,Z)))
|
if (rtrn=((X == Z) ? X : EquateMatrix(X,Z)))
|
||||||
|
@ -2257,9 +2257,9 @@ TVector ProductInverseVM(TVector x, TVector y, TMatrix Z)
|
||||||
bSolveUnitTriangular(LU,pElementV(rtrn),DimV(rtrn),1,1,1^MajorForm(Z),0);
|
bSolveUnitTriangular(LU,pElementV(rtrn),DimV(rtrn),1,1,1^MajorForm(Z),0);
|
||||||
bPermutationMultiply(p,pElementV(rtrn),DimV(rtrn),1,RowM(Z),0,0);
|
bPermutationMultiply(p,pElementV(rtrn),DimV(rtrn),1,RowM(Z),0,0);
|
||||||
}
|
}
|
||||||
free(LU);
|
swzFree(LU);
|
||||||
}
|
}
|
||||||
free(p);
|
swzFree(p);
|
||||||
}
|
}
|
||||||
return rtrn;
|
return rtrn;
|
||||||
}
|
}
|
||||||
|
@ -2389,9 +2389,9 @@ TMatrix ProductInverseMM(TMatrix X, TMatrix Y, TMatrix Z)
|
||||||
bSolveUnitTriangular(LU,pElementM(rtrn),ColM(rtrn),RowM(rtrn),1,1^MajorFormLU,1^MajorForm(rtrn));
|
bSolveUnitTriangular(LU,pElementM(rtrn),ColM(rtrn),RowM(rtrn),1,1^MajorFormLU,1^MajorForm(rtrn));
|
||||||
bPermutationMultiply(p,pElementM(rtrn),ColM(rtrn),RowM(rtrn),ColM(rtrn),0,1^MajorForm(rtrn));
|
bPermutationMultiply(p,pElementM(rtrn),ColM(rtrn),RowM(rtrn),ColM(rtrn),0,1^MajorForm(rtrn));
|
||||||
}
|
}
|
||||||
free(LU);
|
swzFree(LU);
|
||||||
}
|
}
|
||||||
free(p);
|
swzFree(p);
|
||||||
}
|
}
|
||||||
return rtrn;
|
return rtrn;
|
||||||
}
|
}
|
||||||
|
@ -2438,7 +2438,7 @@ TMatrix ProductInverseMU(TMatrix X, TMatrix Y, TMatrix Z)
|
||||||
rtrn=(TMatrix)NULL;
|
rtrn=(TMatrix)NULL;
|
||||||
dw_Error(err);
|
dw_Error(err);
|
||||||
}
|
}
|
||||||
free(ptr);
|
swzFree(ptr);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (rtrn=((X == Y) ? X : EquateMatrix(X,Y)))
|
if (rtrn=((X == Y) ? X : EquateMatrix(X,Y)))
|
||||||
|
@ -2493,7 +2493,7 @@ TMatrix ProductInverseML(TMatrix X, TMatrix Y, TMatrix Z)
|
||||||
rtrn=(TMatrix)NULL;
|
rtrn=(TMatrix)NULL;
|
||||||
dw_Error(err);
|
dw_Error(err);
|
||||||
}
|
}
|
||||||
free(ptr);
|
swzFree(ptr);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (rtrn=((X == Y) ? X : EquateMatrix(X,Y)))
|
if (rtrn=((X == Y) ? X : EquateMatrix(X,Y)))
|
||||||
|
@ -2558,9 +2558,9 @@ TMatrix Inverse_LU(TMatrix X, TMatrix Y)
|
||||||
bSolveUnitTriangular(LU,pElementM(rtrn),RowM(rtrn),ColM(rtrn),0,MajorForm(Y),MajorForm(rtrn));
|
bSolveUnitTriangular(LU,pElementM(rtrn),RowM(rtrn),ColM(rtrn),0,MajorForm(Y),MajorForm(rtrn));
|
||||||
bSolveTriangular(LU,pElementM(rtrn),RowM(rtrn),ColM(rtrn),1,MajorForm(Y),MajorForm(rtrn));
|
bSolveTriangular(LU,pElementM(rtrn),RowM(rtrn),ColM(rtrn),1,MajorForm(Y),MajorForm(rtrn));
|
||||||
}
|
}
|
||||||
free(LU);
|
swzFree(LU);
|
||||||
}
|
}
|
||||||
free(p);
|
swzFree(p);
|
||||||
}
|
}
|
||||||
return rtrn;
|
return rtrn;
|
||||||
}
|
}
|
||||||
|
@ -2617,9 +2617,9 @@ TMatrix Inverse_SVD(TMatrix X, TMatrix Y)
|
||||||
if (d[j] < tolerance)
|
if (d[j] < tolerance)
|
||||||
{
|
{
|
||||||
dw_Error(SING_ERR);
|
dw_Error(SING_ERR);
|
||||||
free(U);
|
swzFree(U);
|
||||||
free(V);
|
swzFree(V);
|
||||||
free(d);
|
swzFree(d);
|
||||||
return (TMatrix)NULL;
|
return (TMatrix)NULL;
|
||||||
}
|
}
|
||||||
scale=1.0/d[j];
|
scale=1.0/d[j];
|
||||||
|
@ -2637,11 +2637,11 @@ TMatrix Inverse_SVD(TMatrix X, TMatrix Y)
|
||||||
if (rtrn=CreateMatrix(RowM(Y),RowM(Y)))
|
if (rtrn=CreateMatrix(RowM(Y),RowM(Y)))
|
||||||
bMatrixMultiply(pElementM(rtrn),V,U,RowM(Y),RowM(Y),RowM(Y),MajorForm(rtrn),1^MajorForm(Y),1^MajorForm(Y));
|
bMatrixMultiply(pElementM(rtrn),V,U,RowM(Y),RowM(Y),RowM(Y),MajorForm(rtrn),1^MajorForm(Y),1^MajorForm(Y));
|
||||||
}
|
}
|
||||||
free(d);
|
swzFree(d);
|
||||||
}
|
}
|
||||||
free(V);
|
swzFree(V);
|
||||||
}
|
}
|
||||||
free(U);
|
swzFree(U);
|
||||||
}
|
}
|
||||||
return rtrn;
|
return rtrn;
|
||||||
}
|
}
|
||||||
|
@ -2690,7 +2690,7 @@ TMatrix Inverse_Cholesky(TMatrix X, TMatrix Y)
|
||||||
memcpy(pElementM(rtrn),ptr,RowM(Y)*RowM(Y)*sizeof(PRECISION));
|
memcpy(pElementM(rtrn),ptr,RowM(Y)*RowM(Y)*sizeof(PRECISION));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
free(ptr);
|
swzFree(ptr);
|
||||||
}
|
}
|
||||||
return rtrn;
|
return rtrn;
|
||||||
}
|
}
|
||||||
|
@ -2749,10 +2749,10 @@ TMatrix Inverse_UT(TMatrix X, TMatrix T)
|
||||||
if (err=bSolveTriangular(ptr,pElementM(X),RowM(T),RowM(T),1,MajorForm(T),MajorForm(X)))
|
if (err=bSolveTriangular(ptr,pElementM(X),RowM(T),RowM(T),1,MajorForm(T),MajorForm(X)))
|
||||||
{
|
{
|
||||||
dw_Error(err);
|
dw_Error(err);
|
||||||
free(ptr);
|
swzFree(ptr);
|
||||||
return (TMatrix)NULL;
|
return (TMatrix)NULL;
|
||||||
}
|
}
|
||||||
free(ptr);
|
swzFree(ptr);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (X=IdentityMatrix(X,RowM(T)))
|
if (X=IdentityMatrix(X,RowM(T)))
|
||||||
|
@ -2818,10 +2818,10 @@ TMatrix Inverse_LT(TMatrix X, TMatrix T)
|
||||||
if (err=bSolveTriangular(ptr,pElementM(X),RowM(T),RowM(T),0,MajorForm(T),MajorForm(X)))
|
if (err=bSolveTriangular(ptr,pElementM(X),RowM(T),RowM(T),0,MajorForm(T),MajorForm(X)))
|
||||||
{
|
{
|
||||||
dw_Error(err);
|
dw_Error(err);
|
||||||
free(ptr);
|
swzFree(ptr);
|
||||||
return (TMatrix)NULL;
|
return (TMatrix)NULL;
|
||||||
}
|
}
|
||||||
free(ptr);
|
swzFree(ptr);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (X=IdentityMatrix(X,RowM(T)))
|
if (X=IdentityMatrix(X,RowM(T)))
|
||||||
|
@ -2918,7 +2918,7 @@ PRECISION MatrixNorm(TMatrix X)
|
||||||
return 0.0;
|
return 0.0;
|
||||||
}
|
}
|
||||||
result=d[0];
|
result=d[0];
|
||||||
free(d);
|
swzFree(d);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3070,9 +3070,9 @@ PRECISION Determinant_LU(TMatrix X)
|
||||||
rtrn=(i >= 0) ? 0.0 : sgn*exp(rtrn);
|
rtrn=(i >= 0) ? 0.0 : sgn*exp(rtrn);
|
||||||
}
|
}
|
||||||
dw_ClearError();
|
dw_ClearError();
|
||||||
free(LU);
|
swzFree(LU);
|
||||||
}
|
}
|
||||||
free(p);
|
swzFree(p);
|
||||||
}
|
}
|
||||||
return rtrn;
|
return rtrn;
|
||||||
}
|
}
|
||||||
|
@ -3123,9 +3123,9 @@ PRECISION LogAbsDeterminant_LU(TMatrix X)
|
||||||
}
|
}
|
||||||
dw_ClearError();
|
dw_ClearError();
|
||||||
}
|
}
|
||||||
free(LU);
|
swzFree(LU);
|
||||||
}
|
}
|
||||||
free(p);
|
swzFree(p);
|
||||||
}
|
}
|
||||||
return rtrn;
|
return rtrn;
|
||||||
}
|
}
|
||||||
|
@ -3173,12 +3173,12 @@ PRECISION Determinant_QR(TMatrix X)
|
||||||
rtrn+=log(R[i]);
|
rtrn+=log(R[i]);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
free(R);
|
swzFree(R);
|
||||||
return 0.0;
|
return 0.0;
|
||||||
}
|
}
|
||||||
rtrn=sgn*exp(rtrn);
|
rtrn=sgn*exp(rtrn);
|
||||||
}
|
}
|
||||||
free(R);
|
swzFree(R);
|
||||||
}
|
}
|
||||||
return rtrn;
|
return rtrn;
|
||||||
}
|
}
|
||||||
|
@ -3470,14 +3470,14 @@ TMatrix NullSpace(TMatrix Y)
|
||||||
if (bSVD_new((PRECISION*)NULL,d,pElementM(v),pElementM(Y),RowM(Y),ColM(Y),1,MajorForm(v),MajorForm(Y),0) != NO_ERR)
|
if (bSVD_new((PRECISION*)NULL,d,pElementM(v),pElementM(Y),RowM(Y),ColM(Y),1,MajorForm(v),MajorForm(Y),0) != NO_ERR)
|
||||||
{
|
{
|
||||||
FreeMatrix(v);
|
FreeMatrix(v);
|
||||||
free(d);
|
swzFree(d);
|
||||||
dw_Error(BLAS_LAPACK_ERR);
|
dw_Error(BLAS_LAPACK_ERR);
|
||||||
return (TMatrix)NULL;
|
return (TMatrix)NULL;
|
||||||
}
|
}
|
||||||
dw_ClearError();
|
dw_ClearError();
|
||||||
if (d[0] < SQRT_MACHINE_EPSILON)
|
if (d[0] < SQRT_MACHINE_EPSILON)
|
||||||
{
|
{
|
||||||
free(d);
|
swzFree(d);
|
||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
small=d[0]*SQRT_MACHINE_EPSILON*sqrt(q);
|
small=d[0]*SQRT_MACHINE_EPSILON*sqrt(q);
|
||||||
|
@ -3485,13 +3485,13 @@ TMatrix NullSpace(TMatrix Y)
|
||||||
if (d[i] > small) break;
|
if (d[i] > small) break;
|
||||||
null=(++i == ColM(Y)) ? (TMatrix)NULL : SubMatrix((TMatrix)NULL,v,0,i,ColM(Y),ColM(Y)-i);
|
null=(++i == ColM(Y)) ? (TMatrix)NULL : SubMatrix((TMatrix)NULL,v,0,i,ColM(Y),ColM(Y)-i);
|
||||||
FreeMatrix(v);
|
FreeMatrix(v);
|
||||||
free(d);
|
swzFree(d);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (v) FreeMatrix(v);
|
if (v) FreeMatrix(v);
|
||||||
if (d) free(d);
|
if (d) swzFree(d);
|
||||||
dw_Error(MEM_ERR);
|
dw_Error(MEM_ERR);
|
||||||
return (TMatrix)NULL;
|
return (TMatrix)NULL;
|
||||||
}
|
}
|
||||||
|
@ -3546,7 +3546,7 @@ TMatrix GeneralizedInverse(TMatrix X, TMatrix Y)
|
||||||
{
|
{
|
||||||
FreeMatrix(v);
|
FreeMatrix(v);
|
||||||
FreeMatrix(u);
|
FreeMatrix(u);
|
||||||
free(d);
|
swzFree(d);
|
||||||
dw_Error(BLAS_LAPACK_ERR);
|
dw_Error(BLAS_LAPACK_ERR);
|
||||||
return (TMatrix)NULL;
|
return (TMatrix)NULL;
|
||||||
}
|
}
|
||||||
|
@ -3567,7 +3567,7 @@ TMatrix GeneralizedInverse(TMatrix X, TMatrix Y)
|
||||||
FreeMatrix(w);
|
FreeMatrix(w);
|
||||||
FreeMatrix(u);
|
FreeMatrix(u);
|
||||||
FreeMatrix(v);
|
FreeMatrix(v);
|
||||||
free(d);
|
swzFree(d);
|
||||||
|
|
||||||
return X;
|
return X;
|
||||||
}
|
}
|
||||||
|
@ -3575,7 +3575,7 @@ TMatrix GeneralizedInverse(TMatrix X, TMatrix Y)
|
||||||
{
|
{
|
||||||
if (v) FreeMatrix(v);
|
if (v) FreeMatrix(v);
|
||||||
if (u) FreeMatrix(u);
|
if (u) FreeMatrix(u);
|
||||||
if (d) free(d);
|
if (d) swzFree(d);
|
||||||
dw_Error(MEM_ERR);
|
dw_Error(MEM_ERR);
|
||||||
return (TMatrix)NULL;
|
return (TMatrix)NULL;
|
||||||
}
|
}
|
||||||
|
@ -3972,7 +3972,7 @@ TVector InVector(FILE *f, TVector x)
|
||||||
while (--i >= 0) ElementV(x,i)=((float*)y)[i];
|
while (--i >= 0) ElementV(x,i)=((float*)y)[i];
|
||||||
else
|
else
|
||||||
while (--i >= 0) ElementV(x,i)=((double*)y)[i];
|
while (--i >= 0) ElementV(x,i)=((double*)y)[i];
|
||||||
free(y);
|
swzFree(y);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (fread(pElementV(x),i*sizeof(PRECISION),1,f) != 1) goto EXIT_ERROR;
|
if (fread(pElementV(x),i*sizeof(PRECISION),1,f) != 1) goto EXIT_ERROR;
|
||||||
|
@ -3982,7 +3982,7 @@ TVector InVector(FILE *f, TVector x)
|
||||||
EXIT_ERROR:
|
EXIT_ERROR:
|
||||||
fseek(f,position,SEEK_SET);
|
fseek(f,position,SEEK_SET);
|
||||||
if (del) FreeVector(x);
|
if (del) FreeVector(x);
|
||||||
if (y) free(y);
|
if (y) swzFree(y);
|
||||||
return (TVector)NULL;
|
return (TVector)NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4038,7 +4038,7 @@ TMatrix InMatrix(FILE *f, TMatrix X)
|
||||||
while (--i >= 0) pElementM(X)[i]=((float*)Y)[i];
|
while (--i >= 0) pElementM(X)[i]=((float*)Y)[i];
|
||||||
else
|
else
|
||||||
while (--i >= 0) pElementM(X)[i]=((double*)Y)[i];
|
while (--i >= 0) pElementM(X)[i]=((double*)Y)[i];
|
||||||
free(Y);
|
swzFree(Y);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (fread(pElementM(X),i*sizeof(PRECISION),1,f) != 1) goto EXIT_ERROR;
|
if (fread(pElementM(X),i*sizeof(PRECISION),1,f) != 1) goto EXIT_ERROR;
|
||||||
|
@ -4048,7 +4048,7 @@ TMatrix InMatrix(FILE *f, TMatrix X)
|
||||||
EXIT_ERROR:
|
EXIT_ERROR:
|
||||||
fseek(f,position,SEEK_SET);
|
fseek(f,position,SEEK_SET);
|
||||||
if (del) FreeMatrix(X);
|
if (del) FreeMatrix(X);
|
||||||
if (Y) free(Y);
|
if (Y) swzFree(Y);
|
||||||
return (TMatrix)NULL;
|
return (TMatrix)NULL;
|
||||||
}
|
}
|
||||||
/*******************************************************************************/
|
/*******************************************************************************/
|
||||||
|
@ -4575,7 +4575,7 @@ int QR(TMatrix Q, TMatrix R, TMatrix X)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
err=bQR(pElementM(Q),pElementM(R),ptr,RowM(X),ColM(X),RowM(R),MajorForm(Q),MajorForm(R),MajorForm(X));
|
err=bQR(pElementM(Q),pElementM(R),ptr,RowM(X),ColM(X),RowM(R),MajorForm(Q),MajorForm(R),MajorForm(X));
|
||||||
if (ptr != pElementM(R)) free(ptr);
|
if (ptr != pElementM(R)) swzFree(ptr);
|
||||||
if (!err) return 1;
|
if (!err) return 1;
|
||||||
dw_Error(err);
|
dw_Error(err);
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -4748,7 +4748,7 @@ TVector LU_SolveRowM(TVector x, TVector y, TMatrix LU, TPermutation P)
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i=UseP(P)-1; i >= 0; i--) ElementV(x,ElementP(P,i))=z[i];
|
for (i=UseP(P)-1; i >= 0; i--) ElementV(x,ElementP(P,i))=z[i];
|
||||||
free(z);
|
swzFree(z);
|
||||||
return x;
|
return x;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -37,7 +37,7 @@ typedef struct
|
||||||
|
|
||||||
/* // memory management ansi-c*/
|
/* // memory management ansi-c*/
|
||||||
#define tzMalloc(elt_count,type) (type *)swzMalloc((elt_count)*sizeof(type))
|
#define tzMalloc(elt_count,type) (type *)swzMalloc((elt_count)*sizeof(type))
|
||||||
#define tzDestroy(x) {if (x) { free((x)); (x) = NULL; }}
|
#define tzDestroy(x) {if (x) { swzFree((x)); (x) = NULL; }}
|
||||||
|
|
||||||
/* // i/o ansi-c*/
|
/* // i/o ansi-c*/
|
||||||
#define tzFclose(x) {if (x) { fclose(x); (x)=(FILE *)NULL;}}
|
#define tzFclose(x) {if (x) { fclose(x); (x)=(FILE *)NULL;}}
|
||||||
|
|
|
@ -388,7 +388,7 @@ static void b_qsort_matrix_columns_ascending_real(PRECISION *x, int m, int n, in
|
||||||
memcpy(x+k+m-idx,y,s);
|
memcpy(x+k+m-idx,y,s);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
free(y);
|
swzFree(y);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -456,7 +456,7 @@ static void b_qsort_matrix_columns_descending_real(PRECISION *x, int m, int n, i
|
||||||
memcpy(x+k+m-idx,y,s);
|
memcpy(x+k+m-idx,y,s);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
free(y);
|
swzFree(y);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -118,7 +118,7 @@ void SetupSpherical_Table(int n, PRECISION *table, int m)
|
||||||
SPHERICAL_TYPE=SPHERICAL_TABLE;
|
SPHERICAL_TYPE=SPHERICAL_TABLE;
|
||||||
SPHERICAL_DIM=n;
|
SPHERICAL_DIM=n;
|
||||||
SPHERICAL_CONSTANT=log(0.5) + dw_log_gamma(0.5*n) - 0.5*n*log(PI);
|
SPHERICAL_CONSTANT=log(0.5) + dw_log_gamma(0.5*n) - 0.5*n*log(PI);
|
||||||
if (SPHERICAL_TABLE_VALUES) free(SPHERICAL_TABLE_VALUES);
|
if (SPHERICAL_TABLE_VALUES) swzFree(SPHERICAL_TABLE_VALUES);
|
||||||
SPHERICAL_TABLE_VALUES=(PRECISION*)swzMalloc((m+1)*sizeof(PRECISION));
|
SPHERICAL_TABLE_VALUES=(PRECISION*)swzMalloc((m+1)*sizeof(PRECISION));
|
||||||
SPHERICAL_TABLE_LENGTH=m;
|
SPHERICAL_TABLE_LENGTH=m;
|
||||||
memcpy(SPHERICAL_TABLE_VALUES,table,(m+1)*sizeof(PRECISION));
|
memcpy(SPHERICAL_TABLE_VALUES,table,(m+1)*sizeof(PRECISION));
|
||||||
|
|
|
@ -143,7 +143,7 @@ void dw_print_generator_state(FILE *f)
|
||||||
{
|
{
|
||||||
for (i=0; i < 1566; i++) fprintf(f,"%d ",state[i]);
|
for (i=0; i < 1566; i++) fprintf(f,"%d ",state[i]);
|
||||||
fprintf(f,"\n");
|
fprintf(f,"\n");
|
||||||
free(state);
|
swzFree(state);
|
||||||
}
|
}
|
||||||
#elif defined (USE_NR1_RNG)
|
#elif defined (USE_NR1_RNG)
|
||||||
int i, *state;
|
int i, *state;
|
||||||
|
@ -151,7 +151,7 @@ void dw_print_generator_state(FILE *f)
|
||||||
{
|
{
|
||||||
for (i=0; i < NTAB+2; i++) fprintf(f,"%d ",state[i]);
|
for (i=0; i < NTAB+2; i++) fprintf(f,"%d ",state[i]);
|
||||||
fprintf(f,"\n");
|
fprintf(f,"\n");
|
||||||
free(state);
|
swzFree(state);
|
||||||
}
|
}
|
||||||
#elif defined (USE_NR2_RNG)
|
#elif defined (USE_NR2_RNG)
|
||||||
int i, *state;
|
int i, *state;
|
||||||
|
@ -159,7 +159,7 @@ void dw_print_generator_state(FILE *f)
|
||||||
{
|
{
|
||||||
for (i=0; i < NTAB+3; i++) fprintf(f,"%d ",state[i]);
|
for (i=0; i < NTAB+3; i++) fprintf(f,"%d ",state[i]);
|
||||||
fprintf(f,"\n");
|
fprintf(f,"\n");
|
||||||
free(state);
|
swzFree(state);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -174,7 +174,7 @@ void dw_read_generator_state(FILE *f)
|
||||||
{
|
{
|
||||||
for (i=0; i < 1566; i++) fscanf(f," %d ",state+i);
|
for (i=0; i < 1566; i++) fscanf(f," %d ",state+i);
|
||||||
dw_set_generator_state(state);
|
dw_set_generator_state(state);
|
||||||
free(state);
|
swzFree(state);
|
||||||
}
|
}
|
||||||
#elif defined (USE_NR1_RNG)
|
#elif defined (USE_NR1_RNG)
|
||||||
int i, *state;
|
int i, *state;
|
||||||
|
@ -182,7 +182,7 @@ void dw_read_generator_state(FILE *f)
|
||||||
{
|
{
|
||||||
for (i=0; i < NTAB+2; i++) fscanf(f," %d ",state+i);
|
for (i=0; i < NTAB+2; i++) fscanf(f," %d ",state+i);
|
||||||
dw_set_generator_state(state);
|
dw_set_generator_state(state);
|
||||||
free(state);
|
swzFree(state);
|
||||||
}
|
}
|
||||||
#elif defined (USE_NR2_RNG)
|
#elif defined (USE_NR2_RNG)
|
||||||
int i, *state;
|
int i, *state;
|
||||||
|
@ -190,7 +190,7 @@ void dw_read_generator_state(FILE *f)
|
||||||
{
|
{
|
||||||
for (i=0; i < NTAB+3; i++) fscanf(f," %d ",state+i);
|
for (i=0; i < NTAB+3; i++) fscanf(f," %d ",state+i);
|
||||||
dw_set_generator_state(state);
|
dw_set_generator_state(state);
|
||||||
free(state);
|
swzFree(state);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
@ -787,11 +787,11 @@ static void bfgsi(double *H, double *dg, double *dx, int n, int nn) {
|
||||||
m = 1+times(dg,Hdg,n)*dgdx;
|
m = 1+times(dg,Hdg,n)*dgdx;
|
||||||
for (i=0; i<nn; i++, H++, dxdx++, dxHdg++, Hdgdx++)
|
for (i=0; i<nn; i++, H++, dxdx++, dxHdg++, Hdgdx++)
|
||||||
*H += (m*(*dxdx)-(*dxHdg)-(*Hdgdx))*dgdx;
|
*H += (m*(*dxdx)-(*dxHdg)-(*Hdgdx))*dgdx;
|
||||||
free(Hdgdx-nn);
|
swzFree(Hdgdx-nn);
|
||||||
Hdgdx=NULL; /* DDDDDebugging. ansi-c*/
|
Hdgdx=NULL; /* DDDDDebugging. ansi-c*/
|
||||||
free(dxHdg-nn);
|
swzFree(dxHdg-nn);
|
||||||
dxHdg = NULL;
|
dxHdg = NULL;
|
||||||
free(dxdx-nn);
|
swzFree(dxdx-nn);
|
||||||
dxdx = NULL;
|
dxdx = NULL;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
|
@ -51,11 +51,11 @@ TSdp2m5 *CreateP2m5(const double p, const double bound)
|
||||||
TSdp2m5 *DestroyP2m5(TSdp2m5 *x_dp2m5)
|
TSdp2m5 *DestroyP2m5(TSdp2m5 *x_dp2m5)
|
||||||
{
|
{
|
||||||
if (x_dp2m5) {
|
if (x_dp2m5) {
|
||||||
free(x_dp2m5->m);
|
swzFree(x_dp2m5->m);
|
||||||
free(x_dp2m5->q);
|
swzFree(x_dp2m5->q);
|
||||||
free(x_dp2m5->p);
|
swzFree(x_dp2m5->p);
|
||||||
|
|
||||||
free(x_dp2m5);
|
swzFree(x_dp2m5);
|
||||||
return ((TSdp2m5 *)NULL);
|
return ((TSdp2m5 *)NULL);
|
||||||
}
|
}
|
||||||
else return (x_dp2m5);
|
else return (x_dp2m5);
|
||||||
|
@ -80,9 +80,9 @@ TSdvectorp2m5 *DestroyVectorP2m5(TSdvectorp2m5 *x_dvp2m5)
|
||||||
if (x_dvp2m5) {
|
if (x_dvp2m5) {
|
||||||
for (_i=x_dvp2m5->n-1; _i>=0; _i--)
|
for (_i=x_dvp2m5->n-1; _i>=0; _i--)
|
||||||
x_dvp2m5->v[_i] = DestroyP2m5(x_dvp2m5->v[_i]);
|
x_dvp2m5->v[_i] = DestroyP2m5(x_dvp2m5->v[_i]);
|
||||||
free(x_dvp2m5->v);
|
swzFree(x_dvp2m5->v);
|
||||||
|
|
||||||
free(x_dvp2m5);
|
swzFree(x_dvp2m5);
|
||||||
return ((TSdvectorp2m5 *)NULL);
|
return ((TSdvectorp2m5 *)NULL);
|
||||||
}
|
}
|
||||||
else return (x_dvp2m5);
|
else return (x_dvp2m5);
|
||||||
|
@ -108,9 +108,9 @@ TSdmatrixp2m5 *DestroyMatrixP2m5(TSdmatrixp2m5 *X_dmp2m5)
|
||||||
if (X_dmp2m5) {
|
if (X_dmp2m5) {
|
||||||
for (_i=X_dmp2m5->nrows*X_dmp2m5->ncols-1; _i>=0; _i--)
|
for (_i=X_dmp2m5->nrows*X_dmp2m5->ncols-1; _i>=0; _i--)
|
||||||
X_dmp2m5->M[_i] = DestroyP2m5(X_dmp2m5->M[_i]);
|
X_dmp2m5->M[_i] = DestroyP2m5(X_dmp2m5->M[_i]);
|
||||||
free(X_dmp2m5->M);
|
swzFree(X_dmp2m5->M);
|
||||||
|
|
||||||
free(X_dmp2m5);
|
swzFree(X_dmp2m5);
|
||||||
return ((TSdmatrixp2m5 *)NULL);
|
return ((TSdmatrixp2m5 *)NULL);
|
||||||
}
|
}
|
||||||
else return (X_dmp2m5);
|
else return (X_dmp2m5);
|
||||||
|
@ -141,9 +141,9 @@ TSdcellp2m5 *DestroyCellP2m5(TSdcellp2m5 *X_dcp2m5)
|
||||||
if (X_dcp2m5) {
|
if (X_dcp2m5) {
|
||||||
for (_i=X_dcp2m5->ncells-1; _i>=0; _i--)
|
for (_i=X_dcp2m5->ncells-1; _i>=0; _i--)
|
||||||
X_dcp2m5->C[_i] = DestroyMatrixP2m5(X_dcp2m5->C[_i]);
|
X_dcp2m5->C[_i] = DestroyMatrixP2m5(X_dcp2m5->C[_i]);
|
||||||
free(X_dcp2m5->C);
|
swzFree(X_dcp2m5->C);
|
||||||
|
|
||||||
free(X_dcp2m5);
|
swzFree(X_dcp2m5);
|
||||||
return ((TSdcellp2m5 *)NULL);
|
return ((TSdcellp2m5 *)NULL);
|
||||||
}
|
}
|
||||||
else return (X_dcp2m5);
|
else return (X_dcp2m5);
|
||||||
|
@ -173,9 +173,9 @@ TSdfourthp2m5 *DestroyFourthP2m5(TSdfourthp2m5 *X_d4p2m5)
|
||||||
if (X_d4p2m5) {
|
if (X_d4p2m5) {
|
||||||
for (_i=X_d4p2m5->ndims-1; _i>=0; _i--)
|
for (_i=X_d4p2m5->ndims-1; _i>=0; _i--)
|
||||||
X_d4p2m5->F[_i] = DestroyCellP2m5(X_d4p2m5->F[_i]);
|
X_d4p2m5->F[_i] = DestroyCellP2m5(X_d4p2m5->F[_i]);
|
||||||
free(X_d4p2m5->F);
|
swzFree(X_d4p2m5->F);
|
||||||
|
|
||||||
free(X_d4p2m5);
|
swzFree(X_d4p2m5);
|
||||||
return ((TSdfourthp2m5 *)NULL);
|
return ((TSdfourthp2m5 *)NULL);
|
||||||
}
|
}
|
||||||
else return (X_d4p2m5);
|
else return (X_d4p2m5);
|
||||||
|
@ -1518,7 +1518,7 @@ struct TSveclogsum_tag *DestroyVeclogsum(struct TSveclogsum_tag *veclogsum_ps)
|
||||||
DestroyVector_lf(veclogsum_ps->logmax_dv);
|
DestroyVector_lf(veclogsum_ps->logmax_dv);
|
||||||
|
|
||||||
/* //=== ansi-c*/
|
/* //=== ansi-c*/
|
||||||
free(veclogsum_ps);
|
swzFree(veclogsum_ps);
|
||||||
return ((struct TSveclogsum_tag *)NULL);
|
return ((struct TSveclogsum_tag *)NULL);
|
||||||
}
|
}
|
||||||
else return (veclogsum_ps);
|
else return (veclogsum_ps);
|
||||||
|
@ -2562,7 +2562,7 @@ void fn_ergodp(double **aop, int *aod, mxArray *cp) {
|
||||||
(*aop)[ki] = gpim_p[n*eigmaxindx+ki]*tmpd0; // Normalized eigmaxindx_th column as ergodic probabilities.
|
(*aop)[ki] = gpim_p[n*eigmaxindx+ki]*tmpd0; // Normalized eigmaxindx_th column as ergodic probabilities.
|
||||||
}
|
}
|
||||||
|
|
||||||
mxDestroyArray(gpim); // ????? free(gpim_p)
|
mxDestroyArray(gpim); // ????? swzFree(gpim_p)
|
||||||
mxDestroyArray(gpid);
|
mxDestroyArray(gpid);
|
||||||
}
|
}
|
||||||
/**/
|
/**/
|
||||||
|
@ -2594,11 +2594,11 @@ TSdp2m5 *CreateP2m5(const double p)
|
||||||
TSdp2m5 *DestroyP2m5(TSdp2m5 *x_dp2m5)
|
TSdp2m5 *DestroyP2m5(TSdp2m5 *x_dp2m5)
|
||||||
{
|
{
|
||||||
if (x_dp2m5) {
|
if (x_dp2m5) {
|
||||||
free(x_dp2m5->m);
|
swzFree(x_dp2m5->m);
|
||||||
free(x_dp2m5->q);
|
swzFree(x_dp2m5->q);
|
||||||
free(x_dp2m5->p);
|
swzFree(x_dp2m5->p);
|
||||||
|
|
||||||
free(x_dp2m5);
|
swzFree(x_dp2m5);
|
||||||
return ((TSdp2m5 *)NULL);
|
return ((TSdp2m5 *)NULL);
|
||||||
}
|
}
|
||||||
else return (x_dp2m5);
|
else return (x_dp2m5);
|
||||||
|
@ -2623,9 +2623,9 @@ TSdvectorp2m5 *DestroyVectorP2m5(TSdvectorp2m5 *x_dvp2m5)
|
||||||
if (x_dvp2m5) {
|
if (x_dvp2m5) {
|
||||||
for (_i=x_dvp2m5->n-1; _i>=0; _i--)
|
for (_i=x_dvp2m5->n-1; _i>=0; _i--)
|
||||||
x_dvp2m5->v[_i] = DestroyP2m5(x_dvp2m5->v[_i]);
|
x_dvp2m5->v[_i] = DestroyP2m5(x_dvp2m5->v[_i]);
|
||||||
free(x_dvp2m5->v);
|
swzFree(x_dvp2m5->v);
|
||||||
|
|
||||||
free(x_dvp2m5);
|
swzFree(x_dvp2m5);
|
||||||
return ((TSdvectorp2m5 *)NULL);
|
return ((TSdvectorp2m5 *)NULL);
|
||||||
}
|
}
|
||||||
return (x_dvp2m5);
|
return (x_dvp2m5);
|
||||||
|
@ -2651,9 +2651,9 @@ TSdmatrixp2m5 *DestroyMatrixP2m5(TSdmatrixp2m5 *X_dmp2m5)
|
||||||
if (X_dmp2m5) {
|
if (X_dmp2m5) {
|
||||||
for (_i=X_dmp2m5->nrows*X_dmp2m5->ncols-1; _i>=0; _i--)
|
for (_i=X_dmp2m5->nrows*X_dmp2m5->ncols-1; _i>=0; _i--)
|
||||||
X_dmp2m5->M[_i] = DestroyP2m5(X_dmp2m5->M[_i]);
|
X_dmp2m5->M[_i] = DestroyP2m5(X_dmp2m5->M[_i]);
|
||||||
free(X_dmp2m5->M);
|
swzFree(X_dmp2m5->M);
|
||||||
|
|
||||||
free(X_dmp2m5);
|
swzFree(X_dmp2m5);
|
||||||
return ((TSdmatrixp2m5 *)NULL);
|
return ((TSdmatrixp2m5 *)NULL);
|
||||||
}
|
}
|
||||||
else return (X_dmp2m5);
|
else return (X_dmp2m5);
|
||||||
|
@ -2684,9 +2684,9 @@ TSdcellp2m5 *DestroyCellP2m5(TSdcellp2m5 *X_dcp2m5)
|
||||||
if (X_dcp2m5) {
|
if (X_dcp2m5) {
|
||||||
for (_i=X_dcp2m5->ncells-1; _i>=0; _i--)
|
for (_i=X_dcp2m5->ncells-1; _i>=0; _i--)
|
||||||
X_dcp2m5->C[_i] = DestroyMatrixP2m5(X_dcp2m5->C[_i]);
|
X_dcp2m5->C[_i] = DestroyMatrixP2m5(X_dcp2m5->C[_i]);
|
||||||
free(X_dcp2m5->C);
|
swzFree(X_dcp2m5->C);
|
||||||
|
|
||||||
free(X_dcp2m5);
|
swzFree(X_dcp2m5);
|
||||||
return ((TSdcellp2m5 *)NULL);
|
return ((TSdcellp2m5 *)NULL);
|
||||||
}
|
}
|
||||||
else return (X_dcp2m5);
|
else return (X_dcp2m5);
|
||||||
|
|
|
@ -51,11 +51,11 @@ TSdp2m5 *CreateP2m5(const double p, const double bound)
|
||||||
TSdp2m5 *DestroyP2m5(TSdp2m5 *x_dp2m5)
|
TSdp2m5 *DestroyP2m5(TSdp2m5 *x_dp2m5)
|
||||||
{
|
{
|
||||||
if (x_dp2m5) {
|
if (x_dp2m5) {
|
||||||
free(x_dp2m5->m);
|
swzFree(x_dp2m5->m);
|
||||||
free(x_dp2m5->q);
|
swzFree(x_dp2m5->q);
|
||||||
free(x_dp2m5->p);
|
swzFree(x_dp2m5->p);
|
||||||
|
|
||||||
free(x_dp2m5);
|
swzFree(x_dp2m5);
|
||||||
return ((TSdp2m5 *)NULL);
|
return ((TSdp2m5 *)NULL);
|
||||||
}
|
}
|
||||||
else return (x_dp2m5);
|
else return (x_dp2m5);
|
||||||
|
@ -80,9 +80,9 @@ TSdvectorp2m5 *DestroyVectorP2m5(TSdvectorp2m5 *x_dvp2m5)
|
||||||
if (x_dvp2m5) {
|
if (x_dvp2m5) {
|
||||||
for (_i=x_dvp2m5->n-1; _i>=0; _i--)
|
for (_i=x_dvp2m5->n-1; _i>=0; _i--)
|
||||||
x_dvp2m5->v[_i] = DestroyP2m5(x_dvp2m5->v[_i]);
|
x_dvp2m5->v[_i] = DestroyP2m5(x_dvp2m5->v[_i]);
|
||||||
free(x_dvp2m5->v);
|
swzFree(x_dvp2m5->v);
|
||||||
|
|
||||||
free(x_dvp2m5);
|
swzFree(x_dvp2m5);
|
||||||
return ((TSdvectorp2m5 *)NULL);
|
return ((TSdvectorp2m5 *)NULL);
|
||||||
}
|
}
|
||||||
else return (x_dvp2m5);
|
else return (x_dvp2m5);
|
||||||
|
@ -108,9 +108,9 @@ TSdmatrixp2m5 *DestroyMatrixP2m5(TSdmatrixp2m5 *X_dmp2m5)
|
||||||
if (X_dmp2m5) {
|
if (X_dmp2m5) {
|
||||||
for (_i=X_dmp2m5->nrows*X_dmp2m5->ncols-1; _i>=0; _i--)
|
for (_i=X_dmp2m5->nrows*X_dmp2m5->ncols-1; _i>=0; _i--)
|
||||||
X_dmp2m5->M[_i] = DestroyP2m5(X_dmp2m5->M[_i]);
|
X_dmp2m5->M[_i] = DestroyP2m5(X_dmp2m5->M[_i]);
|
||||||
free(X_dmp2m5->M);
|
swzFree(X_dmp2m5->M);
|
||||||
|
|
||||||
free(X_dmp2m5);
|
swzFree(X_dmp2m5);
|
||||||
return ((TSdmatrixp2m5 *)NULL);
|
return ((TSdmatrixp2m5 *)NULL);
|
||||||
}
|
}
|
||||||
else return (X_dmp2m5);
|
else return (X_dmp2m5);
|
||||||
|
@ -141,9 +141,9 @@ TSdcellp2m5 *DestroyCellP2m5(TSdcellp2m5 *X_dcp2m5)
|
||||||
if (X_dcp2m5) {
|
if (X_dcp2m5) {
|
||||||
for (_i=X_dcp2m5->ncells-1; _i>=0; _i--)
|
for (_i=X_dcp2m5->ncells-1; _i>=0; _i--)
|
||||||
X_dcp2m5->C[_i] = DestroyMatrixP2m5(X_dcp2m5->C[_i]);
|
X_dcp2m5->C[_i] = DestroyMatrixP2m5(X_dcp2m5->C[_i]);
|
||||||
free(X_dcp2m5->C);
|
swzFree(X_dcp2m5->C);
|
||||||
|
|
||||||
free(X_dcp2m5);
|
swzFree(X_dcp2m5);
|
||||||
return ((TSdcellp2m5 *)NULL);
|
return ((TSdcellp2m5 *)NULL);
|
||||||
}
|
}
|
||||||
else return (X_dcp2m5);
|
else return (X_dcp2m5);
|
||||||
|
@ -173,9 +173,9 @@ TSdfourthp2m5 *DestroyFourthP2m5(TSdfourthp2m5 *X_d4p2m5)
|
||||||
if (X_d4p2m5) {
|
if (X_d4p2m5) {
|
||||||
for (_i=X_d4p2m5->ndims-1; _i>=0; _i--)
|
for (_i=X_d4p2m5->ndims-1; _i>=0; _i--)
|
||||||
X_d4p2m5->F[_i] = DestroyCellP2m5(X_d4p2m5->F[_i]);
|
X_d4p2m5->F[_i] = DestroyCellP2m5(X_d4p2m5->F[_i]);
|
||||||
free(X_d4p2m5->F);
|
swzFree(X_d4p2m5->F);
|
||||||
|
|
||||||
free(X_d4p2m5);
|
swzFree(X_d4p2m5);
|
||||||
return ((TSdfourthp2m5 *)NULL);
|
return ((TSdfourthp2m5 *)NULL);
|
||||||
}
|
}
|
||||||
else return (X_d4p2m5);
|
else return (X_d4p2m5);
|
||||||
|
@ -1518,7 +1518,7 @@ struct TSveclogsum_tag *DestroyVeclogsum(struct TSveclogsum_tag *veclogsum_ps)
|
||||||
DestroyVector_lf(veclogsum_ps->logmax_dv);
|
DestroyVector_lf(veclogsum_ps->logmax_dv);
|
||||||
|
|
||||||
/* //=== ansi-c*/
|
/* //=== ansi-c*/
|
||||||
free(veclogsum_ps);
|
swzFree(veclogsum_ps);
|
||||||
return ((struct TSveclogsum_tag *)NULL);
|
return ((struct TSveclogsum_tag *)NULL);
|
||||||
}
|
}
|
||||||
else return (veclogsum_ps);
|
else return (veclogsum_ps);
|
||||||
|
@ -2562,7 +2562,7 @@ void fn_ergodp(double **aop, int *aod, mxArray *cp) {
|
||||||
(*aop)[ki] = gpim_p[n*eigmaxindx+ki]*tmpd0; // Normalized eigmaxindx_th column as ergodic probabilities.
|
(*aop)[ki] = gpim_p[n*eigmaxindx+ki]*tmpd0; // Normalized eigmaxindx_th column as ergodic probabilities.
|
||||||
}
|
}
|
||||||
|
|
||||||
mxDestroyArray(gpim); // ????? free(gpim_p)
|
mxDestroyArray(gpim); // ????? swzFree(gpim_p)
|
||||||
mxDestroyArray(gpid);
|
mxDestroyArray(gpid);
|
||||||
}
|
}
|
||||||
/**/
|
/**/
|
||||||
|
@ -2594,11 +2594,11 @@ TSdp2m5 *CreateP2m5(const double p)
|
||||||
TSdp2m5 *DestroyP2m5(TSdp2m5 *x_dp2m5)
|
TSdp2m5 *DestroyP2m5(TSdp2m5 *x_dp2m5)
|
||||||
{
|
{
|
||||||
if (x_dp2m5) {
|
if (x_dp2m5) {
|
||||||
free(x_dp2m5->m);
|
swzFree(x_dp2m5->m);
|
||||||
free(x_dp2m5->q);
|
swzFree(x_dp2m5->q);
|
||||||
free(x_dp2m5->p);
|
swzFree(x_dp2m5->p);
|
||||||
|
|
||||||
free(x_dp2m5);
|
swzFree(x_dp2m5);
|
||||||
return ((TSdp2m5 *)NULL);
|
return ((TSdp2m5 *)NULL);
|
||||||
}
|
}
|
||||||
else return (x_dp2m5);
|
else return (x_dp2m5);
|
||||||
|
@ -2623,9 +2623,9 @@ TSdvectorp2m5 *DestroyVectorP2m5(TSdvectorp2m5 *x_dvp2m5)
|
||||||
if (x_dvp2m5) {
|
if (x_dvp2m5) {
|
||||||
for (_i=x_dvp2m5->n-1; _i>=0; _i--)
|
for (_i=x_dvp2m5->n-1; _i>=0; _i--)
|
||||||
x_dvp2m5->v[_i] = DestroyP2m5(x_dvp2m5->v[_i]);
|
x_dvp2m5->v[_i] = DestroyP2m5(x_dvp2m5->v[_i]);
|
||||||
free(x_dvp2m5->v);
|
swzFree(x_dvp2m5->v);
|
||||||
|
|
||||||
free(x_dvp2m5);
|
swzFree(x_dvp2m5);
|
||||||
return ((TSdvectorp2m5 *)NULL);
|
return ((TSdvectorp2m5 *)NULL);
|
||||||
}
|
}
|
||||||
return (x_dvp2m5);
|
return (x_dvp2m5);
|
||||||
|
@ -2651,9 +2651,9 @@ TSdmatrixp2m5 *DestroyMatrixP2m5(TSdmatrixp2m5 *X_dmp2m5)
|
||||||
if (X_dmp2m5) {
|
if (X_dmp2m5) {
|
||||||
for (_i=X_dmp2m5->nrows*X_dmp2m5->ncols-1; _i>=0; _i--)
|
for (_i=X_dmp2m5->nrows*X_dmp2m5->ncols-1; _i>=0; _i--)
|
||||||
X_dmp2m5->M[_i] = DestroyP2m5(X_dmp2m5->M[_i]);
|
X_dmp2m5->M[_i] = DestroyP2m5(X_dmp2m5->M[_i]);
|
||||||
free(X_dmp2m5->M);
|
swzFree(X_dmp2m5->M);
|
||||||
|
|
||||||
free(X_dmp2m5);
|
swzFree(X_dmp2m5);
|
||||||
return ((TSdmatrixp2m5 *)NULL);
|
return ((TSdmatrixp2m5 *)NULL);
|
||||||
}
|
}
|
||||||
else return (X_dmp2m5);
|
else return (X_dmp2m5);
|
||||||
|
@ -2684,9 +2684,9 @@ TSdcellp2m5 *DestroyCellP2m5(TSdcellp2m5 *X_dcp2m5)
|
||||||
if (X_dcp2m5) {
|
if (X_dcp2m5) {
|
||||||
for (_i=X_dcp2m5->ncells-1; _i>=0; _i--)
|
for (_i=X_dcp2m5->ncells-1; _i>=0; _i--)
|
||||||
X_dcp2m5->C[_i] = DestroyMatrixP2m5(X_dcp2m5->C[_i]);
|
X_dcp2m5->C[_i] = DestroyMatrixP2m5(X_dcp2m5->C[_i]);
|
||||||
free(X_dcp2m5->C);
|
swzFree(X_dcp2m5->C);
|
||||||
|
|
||||||
free(X_dcp2m5);
|
swzFree(X_dcp2m5);
|
||||||
return ((TSdcellp2m5 *)NULL);
|
return ((TSdcellp2m5 *)NULL);
|
||||||
}
|
}
|
||||||
else return (X_dcp2m5);
|
else return (X_dcp2m5);
|
||||||
|
|
|
@ -844,7 +844,7 @@ void ReprintInputData(FILE *fptr_in, FILE *fptr_out)
|
||||||
while (fgets(inpbuffer,BUFFERLEN,fptr_in))
|
while (fgets(inpbuffer,BUFFERLEN,fptr_in))
|
||||||
fprintf(fptr_out, "%s", inpbuffer);
|
fprintf(fptr_out, "%s", inpbuffer);
|
||||||
fprintf(fptr_out, "\n\n\n\n\n//------------------------------- Output Data Begin Here -------------------------------\n");
|
fprintf(fptr_out, "\n\n\n\n\n//------------------------------- Output Data Begin Here -------------------------------\n");
|
||||||
free(inpbuffer);
|
swzFree(inpbuffer);
|
||||||
}
|
}
|
||||||
#undef BUFFERLEN
|
#undef BUFFERLEN
|
||||||
|
|
||||||
|
|
|
@ -125,7 +125,7 @@ TSgensys *DestroyTSgensys(TSgensys *gensys_ps)
|
||||||
DestroyMatrix_lf(gensys_ps->Psi_dm); /* n-by-m. ansi-c*/
|
DestroyMatrix_lf(gensys_ps->Psi_dm); /* n-by-m. ansi-c*/
|
||||||
DestroyMatrix_lf(gensys_ps->Pi_dm); /* n-by-k where k is the number of expectational errors. ansi-c*/
|
DestroyMatrix_lf(gensys_ps->Pi_dm); /* n-by-k where k is the number of expectational errors. ansi-c*/
|
||||||
|
|
||||||
free(gensys_ps);
|
swzFree(gensys_ps);
|
||||||
|
|
||||||
return ((TSgensys *)NULL);
|
return ((TSgensys *)NULL);
|
||||||
}
|
}
|
||||||
|
|
|
@ -105,7 +105,7 @@ TSkalcvfurw *DestroyTSkalcvfurw(TSkalcvfurw *kalcvfurw_ps)
|
||||||
DestroyCell_lf(kalcvfurw_ps->Ppred_dc);
|
DestroyCell_lf(kalcvfurw_ps->Ppred_dc);
|
||||||
DestroyVector_lf(kalcvfurw_ps->ylhtranpred_dv);
|
DestroyVector_lf(kalcvfurw_ps->ylhtranpred_dv);
|
||||||
|
|
||||||
free(kalcvfurw_ps);
|
swzFree(kalcvfurw_ps);
|
||||||
return ((TSkalcvfurw *)NULL);
|
return ((TSkalcvfurw *)NULL);
|
||||||
}
|
}
|
||||||
else return (kalcvfurw_ps);
|
else return (kalcvfurw_ps);
|
||||||
|
|
|
@ -61,7 +61,7 @@ int lurgen(TSdmatrix *lu_dm, TSivector *pivot_dv, TSdmatrix *x_dm) {
|
||||||
for(i=0; i<mindim; i++)
|
for(i=0; i<mindim; i++)
|
||||||
pivot_dv->v[i] = pivot_p[i];
|
pivot_dv->v[i] = pivot_p[i];
|
||||||
}
|
}
|
||||||
free(pivot_p); /* Frees the memory belonging to this function. ansi-c*/
|
swzFree(pivot_p); /* Frees the memory belonging to this function. ansi-c*/
|
||||||
errflag = errflag2;
|
errflag = errflag2;
|
||||||
|
|
||||||
return( errflag ); /* (1) If errflag = 0, success. (2) If errorflag = -i, the ith parameter has an illegal value. ansi-c*/
|
return( errflag ); /* (1) If errflag = 0, success. (2) If errorflag = -i, the ith parameter has an illegal value. ansi-c*/
|
||||||
|
@ -549,8 +549,8 @@ int invrgen(TSdmatrix *X_dm, TSdmatrix *A_dm)
|
||||||
errflag = errflag2;
|
errflag = errflag2;
|
||||||
if (errflag) {
|
if (errflag) {
|
||||||
/* // A_dm->flag = M_UNDEF; ansi-c*/
|
/* // A_dm->flag = M_UNDEF; ansi-c*/
|
||||||
free(ipivot);
|
swzFree(ipivot);
|
||||||
free(work);
|
swzFree(work);
|
||||||
return errflag;
|
return errflag;
|
||||||
}
|
}
|
||||||
lwork2 = lwork;
|
lwork2 = lwork;
|
||||||
|
@ -559,8 +559,8 @@ int invrgen(TSdmatrix *X_dm, TSdmatrix *A_dm)
|
||||||
if (work[0]>lwork) printf("Warning for /mathlib.c/invrgen(); when calling MKL dgetri_(), we need at least %d workspace for good performance "
|
if (work[0]>lwork) printf("Warning for /mathlib.c/invrgen(); when calling MKL dgetri_(), we need at least %d workspace for good performance "
|
||||||
"but lwork is allocated with only %d space!\n", (int)work[0], lwork);
|
"but lwork is allocated with only %d space!\n", (int)work[0], lwork);
|
||||||
if (errflag) {
|
if (errflag) {
|
||||||
free(ipivot);
|
swzFree(ipivot);
|
||||||
free(work);
|
swzFree(work);
|
||||||
return (errflag); /* A_dm->flag = M_UNDEF; ansi-c*/
|
return (errflag); /* A_dm->flag = M_UNDEF; ansi-c*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -572,8 +572,8 @@ int invrgen(TSdmatrix *X_dm, TSdmatrix *A_dm)
|
||||||
errflag = errflag2;
|
errflag = errflag2;
|
||||||
if (errflag) {
|
if (errflag) {
|
||||||
/* // X_dm->flag = M_UNDEF; ansi-c*/
|
/* // X_dm->flag = M_UNDEF; ansi-c*/
|
||||||
free(ipivot);
|
swzFree(ipivot);
|
||||||
free(work);
|
swzFree(work);
|
||||||
return errflag;
|
return errflag;
|
||||||
}
|
}
|
||||||
lwork2 = lwork;
|
lwork2 = lwork;
|
||||||
|
@ -582,15 +582,15 @@ int invrgen(TSdmatrix *X_dm, TSdmatrix *A_dm)
|
||||||
if (work[0]>lwork) printf("Warning for /mathlib.c/invrgen(); when calling MKL dgetri_(), we need at least %d workspace for good performance "
|
if (work[0]>lwork) printf("Warning for /mathlib.c/invrgen(); when calling MKL dgetri_(), we need at least %d workspace for good performance "
|
||||||
"but lwork is allocated with only %d space!\n", (int)work[0], lwork);
|
"but lwork is allocated with only %d space!\n", (int)work[0], lwork);
|
||||||
if (errflag) {
|
if (errflag) {
|
||||||
free(ipivot);
|
swzFree(ipivot);
|
||||||
free(work);
|
swzFree(work);
|
||||||
return (errflag); /* X_dm->flag = M_UNDEF; ansi-c*/
|
return (errflag); /* X_dm->flag = M_UNDEF; ansi-c*/
|
||||||
}
|
}
|
||||||
else X_dm->flag = A_dm->flag;
|
else X_dm->flag = A_dm->flag;
|
||||||
}
|
}
|
||||||
/* //=== Frees memory allocated in this function. ansi-c*/
|
/* //=== Frees memory allocated in this function. ansi-c*/
|
||||||
free(ipivot);
|
swzFree(ipivot);
|
||||||
free(work);
|
swzFree(work);
|
||||||
|
|
||||||
return errflag; /* (1) If errflag = 0, success. (2) If errorflag = -i, the ith parameter has an illegal value. ansi-c*/
|
return errflag; /* (1) If errflag = 0, success. (2) If errorflag = -i, the ith parameter has an illegal value. ansi-c*/
|
||||||
/* //(3) If errflag = i, U_{ii}=0.0. The LU factorization U is literally singular and the inversion ansi-c*/
|
/* //(3) If errflag = i, U_{ii}=0.0. The LU factorization U is literally singular and the inversion ansi-c*/
|
||||||
|
@ -1017,7 +1017,7 @@ void Aldivb_spd(TSdvector *x_dv, TSdmatrix *A_dm, TSdvector *b_dv, char an) {
|
||||||
/* // if (errflag<0) fn_DisplayError("Some element has an illegal value"); ansi-c*/
|
/* // if (errflag<0) fn_DisplayError("Some element has an illegal value"); ansi-c*/
|
||||||
/* // else if (errflag>0) fn_DisplayError("The leadding minor of some order, hence the entire matrix, is not positive definite"); ansi-c*/
|
/* // else if (errflag>0) fn_DisplayError("The leadding minor of some order, hence the entire matrix, is not positive definite"); ansi-c*/
|
||||||
|
|
||||||
if ( (an=='N') || (an=='n') ) free(W);
|
if ( (an=='N') || (an=='n') ) swzFree(W);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
/* //No default routine yet. ansi-c*/
|
/* //No default routine yet. ansi-c*/
|
||||||
|
@ -1229,8 +1229,8 @@ int eigrgen_decomp(double *evalr_v, double *evali_v, double *revecr_m, double *r
|
||||||
/* //--------------------------- ansi-c*/
|
/* //--------------------------- ansi-c*/
|
||||||
if (work_p[0]>lwork) printf("Warning for /mathlib.c/eigrgen_decomp(): needs at least %d workspace for good performance "
|
if (work_p[0]>lwork) printf("Warning for /mathlib.c/eigrgen_decomp(): needs at least %d workspace for good performance "
|
||||||
"but lwork is allocated with only %d space!\n", (int)work_p[0], lwork);
|
"but lwork is allocated with only %d space!\n", (int)work_p[0], lwork);
|
||||||
if (work_p) free(work_p);
|
if (work_p) swzFree(work_p);
|
||||||
if (tmpd0_m) free(tmpd0_m);
|
if (tmpd0_m) swzFree(tmpd0_m);
|
||||||
|
|
||||||
/* //--------------------------- ansi-c*/
|
/* //--------------------------- ansi-c*/
|
||||||
/* // Checks error conditions. ansi-c*/
|
/* // Checks error conditions. ansi-c*/
|
||||||
|
@ -5286,13 +5286,13 @@ double *alloc_ergodp2(const double *cp_m, const int _n) {
|
||||||
|
|
||||||
|
|
||||||
/* //=== Frees up allocated memory. ansi-c*/
|
/* //=== Frees up allocated memory. ansi-c*/
|
||||||
if (absval_v) free(absval_v);
|
if (absval_v) swzFree(absval_v);
|
||||||
if (evalr_v) free(evalr_v);
|
if (evalr_v) swzFree(evalr_v);
|
||||||
if (evali_v) free(evali_v);
|
if (evali_v) swzFree(evali_v);
|
||||||
if (revecr_m) free(revecr_m);
|
if (revecr_m) swzFree(revecr_m);
|
||||||
if (reveci_m) free(reveci_m);
|
if (reveci_m) swzFree(reveci_m);
|
||||||
if (levecr_m) free(levecr_m);
|
if (levecr_m) swzFree(levecr_m);
|
||||||
if (leveci_m) free(leveci_m);
|
if (leveci_m) swzFree(leveci_m);
|
||||||
|
|
||||||
return (p_v);
|
return (p_v);
|
||||||
}
|
}
|
||||||
|
@ -5372,8 +5372,8 @@ double *fn_ergodp2(const double *cp_m, const int _n) {
|
||||||
for (ki=0;ki<_n;ki++) p_v[ki] = evec_m[_n*eigmaxindx+ki]*tmpd0; // Normalized eigmaxindx_th column as ergodic probabilities.
|
for (ki=0;ki<_n;ki++) p_v[ki] = evec_m[_n*eigmaxindx+ki]*tmpd0; // Normalized eigmaxindx_th column as ergodic probabilities.
|
||||||
|
|
||||||
//=== Frees up allocated memory.
|
//=== Frees up allocated memory.
|
||||||
free(eval_v);
|
swzFree(eval_v);
|
||||||
free(evec_m);
|
swzFree(evec_m);
|
||||||
|
|
||||||
|
|
||||||
return p_v;
|
return p_v;
|
||||||
|
|
|
@ -85,8 +85,8 @@ TSminpack *DestroyTSminpack(TSminpack *minpack_ps)
|
||||||
if (minpack_ps) {
|
if (minpack_ps) {
|
||||||
/* //$$$$WARNING: Note the following vectors themselves are NOT allocated memory, but only the POINTERs. Used within the minimization problem. ansi-c*/
|
/* //$$$$WARNING: Note the following vectors themselves are NOT allocated memory, but only the POINTERs. Used within the minimization problem. ansi-c*/
|
||||||
/* //$$$$ See minobj_csminwelwrap() as an example. ansi-c*/
|
/* //$$$$ See minobj_csminwelwrap() as an example. ansi-c*/
|
||||||
free(minpack_ps->xtemp_dv);
|
swzFree(minpack_ps->xtemp_dv);
|
||||||
free(minpack_ps->gtemp_dv);
|
swzFree(minpack_ps->gtemp_dv);
|
||||||
|
|
||||||
|
|
||||||
DestroyVector_lf(minpack_ps->x_dv);
|
DestroyVector_lf(minpack_ps->x_dv);
|
||||||
|
@ -96,7 +96,7 @@ TSminpack *DestroyTSminpack(TSminpack *minpack_ps)
|
||||||
if ( minpack_ps->package & MIN_CSMINWEL ) DestroyTSetc_csminwel((TSetc_csminwel *)minpack_ps->etc_package_ps);
|
if ( minpack_ps->package & MIN_CSMINWEL ) DestroyTSetc_csminwel((TSetc_csminwel *)minpack_ps->etc_package_ps);
|
||||||
|
|
||||||
/* //=== ansi-c*/
|
/* //=== ansi-c*/
|
||||||
free(minpack_ps);
|
swzFree(minpack_ps);
|
||||||
return ((TSminpack *)NULL);
|
return ((TSminpack *)NULL);
|
||||||
}
|
}
|
||||||
else return (minpack_ps);
|
else return (minpack_ps);
|
||||||
|
@ -162,7 +162,7 @@ static TSetc_csminwel *DestroyTSetc_csminwel(TSetc_csminwel *etc_csminwel_ps)
|
||||||
DestroyMatrix_lf(etc_csminwel_ps->Hx_dm);
|
DestroyMatrix_lf(etc_csminwel_ps->Hx_dm);
|
||||||
|
|
||||||
/* //=== ansi-c*/
|
/* //=== ansi-c*/
|
||||||
free(etc_csminwel_ps);
|
swzFree(etc_csminwel_ps);
|
||||||
return ((TSetc_csminwel *)NULL);
|
return ((TSetc_csminwel *)NULL);
|
||||||
}
|
}
|
||||||
else return (etc_csminwel_ps);
|
else return (etc_csminwel_ps);
|
||||||
|
@ -276,7 +276,7 @@ struct TSargs_blockcsminwel_tag *DestroyTSargs_blockcsminwel(struct TSargs_block
|
||||||
if (args_blockcsminwel)
|
if (args_blockcsminwel)
|
||||||
{
|
{
|
||||||
/* //=== ansi-c*/
|
/* //=== ansi-c*/
|
||||||
free(args_blockcsminwel);
|
swzFree(args_blockcsminwel);
|
||||||
return ((struct TSargs_blockcsminwel_tag *)NULL);
|
return ((struct TSargs_blockcsminwel_tag *)NULL);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -316,7 +316,7 @@ struct TSetc_minproj_tag *DestroyTSetc_minproj(struct TSetc_minproj_tag *etc_min
|
||||||
/* //If destroy function is active, destroy it here; ohterwise, it will be destroyed somewhere else. ansi-c*/
|
/* //If destroy function is active, destroy it here; ohterwise, it will be destroyed somewhere else. ansi-c*/
|
||||||
|
|
||||||
/* //=== ansi-c*/
|
/* //=== ansi-c*/
|
||||||
free(etc_minproj_ps);
|
swzFree(etc_minproj_ps);
|
||||||
return ((struct TSetc_minproj_tag *)NULL);
|
return ((struct TSetc_minproj_tag *)NULL);
|
||||||
}
|
}
|
||||||
else return (etc_minproj_ps);
|
else return (etc_minproj_ps);
|
||||||
|
@ -760,7 +760,7 @@ struct TSpackage_imslconlin_tag *DestroyTSpackagae_imslconlin(struct TSpackage_i
|
||||||
DestroyVector_lf(XIMSL_DV);
|
DestroyVector_lf(XIMSL_DV);
|
||||||
|
|
||||||
/* //=== ansi-c*/
|
/* //=== ansi-c*/
|
||||||
free(package_imslconlin_ps);
|
swzFree(package_imslconlin_ps);
|
||||||
return ((struct TSpackage_imslconlin_tag *)NULL);
|
return ((struct TSpackage_imslconlin_tag *)NULL);
|
||||||
}
|
}
|
||||||
else return (package_imslconlin_ps);
|
else return (package_imslconlin_ps);
|
||||||
|
@ -977,7 +977,7 @@ struct TSpackage_congrad1_tag *DestroyTSpackage_congrad1(struct TSpackage_congra
|
||||||
if (package_congrad1_ps)
|
if (package_congrad1_ps)
|
||||||
{
|
{
|
||||||
/* //=== ansi-c*/
|
/* //=== ansi-c*/
|
||||||
free(package_congrad1_ps);
|
swzFree(package_congrad1_ps);
|
||||||
return ((struct TSpackage_congrad1_tag *)NULL);
|
return ((struct TSpackage_congrad1_tag *)NULL);
|
||||||
}
|
}
|
||||||
else return (package_congrad1_ps);
|
else return (package_congrad1_ps);
|
||||||
|
|
|
@ -93,8 +93,8 @@ TSvoidvector *CreateVector_void(int _n)
|
||||||
TSvoidvector *DestroyVector_void(TSvoidvector *x_voidv)
|
TSvoidvector *DestroyVector_void(TSvoidvector *x_voidv)
|
||||||
{
|
{
|
||||||
if (x_voidv) {
|
if (x_voidv) {
|
||||||
free(x_voidv->v);
|
swzFree(x_voidv->v);
|
||||||
free(x_voidv);
|
swzFree(x_voidv);
|
||||||
return ((TSvoidvector *)NULL);
|
return ((TSvoidvector *)NULL);
|
||||||
}
|
}
|
||||||
else return (x_voidv);
|
else return (x_voidv);
|
||||||
|
@ -114,8 +114,8 @@ TScvector *CreateVector_c(int _n)
|
||||||
TScvector *DestroyVector_c(TScvector *x_cv)
|
TScvector *DestroyVector_c(TScvector *x_cv)
|
||||||
{
|
{
|
||||||
if (x_cv) {
|
if (x_cv) {
|
||||||
free(x_cv->v);
|
swzFree(x_cv->v);
|
||||||
free(x_cv);
|
swzFree(x_cv);
|
||||||
return ((TScvector *)NULL);
|
return ((TScvector *)NULL);
|
||||||
}
|
}
|
||||||
else return (x_cv);
|
else return (x_cv);
|
||||||
|
@ -133,8 +133,8 @@ TSivector *CreateVector_int(int _n)
|
||||||
TSivector *DestroyVector_int(TSivector *x_iv)
|
TSivector *DestroyVector_int(TSivector *x_iv)
|
||||||
{
|
{
|
||||||
if (x_iv) {
|
if (x_iv) {
|
||||||
free(x_iv->v);
|
swzFree(x_iv->v);
|
||||||
free(x_iv);
|
swzFree(x_iv);
|
||||||
return ((TSivector *)NULL);
|
return ((TSivector *)NULL);
|
||||||
}
|
}
|
||||||
else return (x_iv);
|
else return (x_iv);
|
||||||
|
@ -152,8 +152,8 @@ TSimatrix *CreateMatrix_int(int nrows, int ncols)
|
||||||
TSimatrix *DestroyMatrix_int(TSimatrix *x_im)
|
TSimatrix *DestroyMatrix_int(TSimatrix *x_im)
|
||||||
{
|
{
|
||||||
if (x_im) {
|
if (x_im) {
|
||||||
free(x_im->M);
|
swzFree(x_im->M);
|
||||||
free(x_im);
|
swzFree(x_im);
|
||||||
return ((TSimatrix *)NULL);
|
return ((TSimatrix *)NULL);
|
||||||
}
|
}
|
||||||
else return (x_im);
|
else return (x_im);
|
||||||
|
@ -176,8 +176,8 @@ TSicellvec *DestroyCellvec_int(TSicellvec *x_icv)
|
||||||
int _i;
|
int _i;
|
||||||
if (x_icv) {
|
if (x_icv) {
|
||||||
for (_i=0; _i<x_icv->ncells; _i++) DestroyVector_int(x_icv->C[_i]);
|
for (_i=0; _i<x_icv->ncells; _i++) DestroyVector_int(x_icv->C[_i]);
|
||||||
free(x_icv->C);
|
swzFree(x_icv->C);
|
||||||
free(x_icv);
|
swzFree(x_icv);
|
||||||
return ((TSicellvec *)NULL);
|
return ((TSicellvec *)NULL);
|
||||||
}
|
}
|
||||||
else return (x_icv);
|
else return (x_icv);
|
||||||
|
@ -204,7 +204,7 @@ TSicell *DestroyCell_int(TSicell *x_ic)
|
||||||
if (x_ic) {
|
if (x_ic) {
|
||||||
for (_i=x_ic->ncells-1; _i>=0; _i--) x_ic->C[_i] = DestroyMatrix_int(x_ic->C[_i]);
|
for (_i=x_ic->ncells-1; _i>=0; _i--) x_ic->C[_i] = DestroyMatrix_int(x_ic->C[_i]);
|
||||||
tzDestroy(x_ic->C);
|
tzDestroy(x_ic->C);
|
||||||
free(x_ic);
|
swzFree(x_ic);
|
||||||
return ((TSicell *)NULL);
|
return ((TSicell *)NULL);
|
||||||
}
|
}
|
||||||
else return (x_ic);
|
else return (x_ic);
|
||||||
|
@ -225,8 +225,8 @@ TSdvector *CreateVector_lf(int _n)
|
||||||
TSdvector *DestroyVector_lf(TSdvector *x_dv)
|
TSdvector *DestroyVector_lf(TSdvector *x_dv)
|
||||||
{
|
{
|
||||||
if (x_dv) {
|
if (x_dv) {
|
||||||
free(x_dv->v);
|
swzFree(x_dv->v);
|
||||||
free(x_dv);
|
swzFree(x_dv);
|
||||||
return ((TSdvector *)NULL);
|
return ((TSdvector *)NULL);
|
||||||
}
|
}
|
||||||
else return (x_dv);
|
else return (x_dv);
|
||||||
|
@ -245,8 +245,8 @@ TSdmatrix *CreateMatrix_lf(int nrows, int ncols)
|
||||||
TSdmatrix *DestroyMatrix_lf(TSdmatrix *x_dm)
|
TSdmatrix *DestroyMatrix_lf(TSdmatrix *x_dm)
|
||||||
{
|
{
|
||||||
if (x_dm) {
|
if (x_dm) {
|
||||||
free(x_dm->M);
|
swzFree(x_dm->M);
|
||||||
free(x_dm);
|
swzFree(x_dm);
|
||||||
return ((TSdmatrix *)NULL);
|
return ((TSdmatrix *)NULL);
|
||||||
}
|
}
|
||||||
else return (x_dm);
|
else return (x_dm);
|
||||||
|
@ -275,7 +275,7 @@ TSdcell *DestroyCell_lf(TSdcell *x_dc)
|
||||||
if (x_dc) {
|
if (x_dc) {
|
||||||
for (_i=x_dc->ncells-1; _i>=0; _i--) x_dc->C[_i] = DestroyMatrix_lf(x_dc->C[_i]);
|
for (_i=x_dc->ncells-1; _i>=0; _i--) x_dc->C[_i] = DestroyMatrix_lf(x_dc->C[_i]);
|
||||||
tzDestroy(x_dc->C);
|
tzDestroy(x_dc->C);
|
||||||
free(x_dc);
|
swzFree(x_dc);
|
||||||
return ((TSdcell *)NULL);
|
return ((TSdcell *)NULL);
|
||||||
}
|
}
|
||||||
else return (x_dc);
|
else return (x_dc);
|
||||||
|
@ -297,8 +297,8 @@ TSdcellvec *DestroyCellvec_lf(TSdcellvec *x_dcv) {
|
||||||
int _i;
|
int _i;
|
||||||
if (x_dcv) {
|
if (x_dcv) {
|
||||||
for (_i=x_dcv->ncells-1; _i>=0; _i--) DestroyVector_lf(x_dcv->C[_i]);
|
for (_i=x_dcv->ncells-1; _i>=0; _i--) DestroyVector_lf(x_dcv->C[_i]);
|
||||||
free(x_dcv->C);
|
swzFree(x_dcv->C);
|
||||||
free(x_dcv);
|
swzFree(x_dcv);
|
||||||
return ((TSdcellvec *)NULL);
|
return ((TSdcellvec *)NULL);
|
||||||
}
|
}
|
||||||
else return (x_dcv);
|
else return (x_dcv);
|
||||||
|
@ -321,8 +321,8 @@ TSdfourth *DestroyFourth_lf(TSdfourth *x_d4) {
|
||||||
int _i;
|
int _i;
|
||||||
if (x_d4) {
|
if (x_d4) {
|
||||||
for (_i=x_d4->ndims-1; _i>=0; _i--) DestroyCell_lf(x_d4->F[_i]);
|
for (_i=x_d4->ndims-1; _i>=0; _i--) DestroyCell_lf(x_d4->F[_i]);
|
||||||
free(x_d4->F);
|
swzFree(x_d4->F);
|
||||||
free(x_d4);
|
swzFree(x_d4);
|
||||||
return ((TSdfourth *)NULL);
|
return ((TSdfourth *)NULL);
|
||||||
}
|
}
|
||||||
else return (x_d4);
|
else return (x_d4);
|
||||||
|
@ -347,8 +347,8 @@ TSdfourthvec *DestroyFourthvec_lf(TSdfourthvec *x_d4v)
|
||||||
int _i;
|
int _i;
|
||||||
if (x_d4v) {
|
if (x_d4v) {
|
||||||
for (_i=x_d4v->ndims-1; _i>=0; _i--) DestroyCellvec_lf(x_d4v->F[_i]);
|
for (_i=x_d4v->ndims-1; _i>=0; _i--) DestroyCellvec_lf(x_d4v->F[_i]);
|
||||||
free(x_d4v->F);
|
swzFree(x_d4v->F);
|
||||||
free(x_d4v);
|
swzFree(x_d4v);
|
||||||
return ((TSdfourthvec *)NULL);
|
return ((TSdfourthvec *)NULL);
|
||||||
}
|
}
|
||||||
else return (x_d4v);
|
else return (x_d4v);
|
||||||
|
@ -366,7 +366,7 @@ TSdzvector *DestroyVector_dz(TSdzvector *x_dzv)
|
||||||
if (x_dzv) {
|
if (x_dzv) {
|
||||||
DestroyVector_lf(x_dzv->real);
|
DestroyVector_lf(x_dzv->real);
|
||||||
DestroyVector_lf(x_dzv->imag);
|
DestroyVector_lf(x_dzv->imag);
|
||||||
free(x_dzv);
|
swzFree(x_dzv);
|
||||||
return ((TSdzvector *)NULL);
|
return ((TSdzvector *)NULL);
|
||||||
}
|
}
|
||||||
else return (x_dzv);
|
else return (x_dzv);
|
||||||
|
@ -383,7 +383,7 @@ TSdzmatrix *DestroyMatrix_dz(TSdzmatrix *x_dzm)
|
||||||
if (x_dzm) {
|
if (x_dzm) {
|
||||||
DestroyMatrix_lf(x_dzm->real);
|
DestroyMatrix_lf(x_dzm->real);
|
||||||
DestroyMatrix_lf(x_dzm->imag);
|
DestroyMatrix_lf(x_dzm->imag);
|
||||||
free(x_dzm);
|
swzFree(x_dzm);
|
||||||
return ((TSdzmatrix *)NULL);
|
return ((TSdzmatrix *)NULL);
|
||||||
}
|
}
|
||||||
else return (x_dzm);
|
else return (x_dzm);
|
||||||
|
|
|
@ -189,7 +189,7 @@
|
||||||
#define tzMalloc(elt_count, type) (type *)m_alloc((elt_count)*sizeof(type))
|
#define tzMalloc(elt_count, type) (type *)m_alloc((elt_count)*sizeof(type))
|
||||||
#define tzCalloc(elt_count, type) (type *)c_alloc((elt_count), sizeof(type))
|
#define tzCalloc(elt_count, type) (type *)c_alloc((elt_count), sizeof(type))
|
||||||
#define tzDestroy(x) {if ((x)) { \
|
#define tzDestroy(x) {if ((x)) { \
|
||||||
free((x)); \
|
swzFree((x)); \
|
||||||
(x) = NULL; \
|
(x) = NULL; \
|
||||||
}}
|
}}
|
||||||
#define tzFclose(x) {if ((x)) { \
|
#define tzFclose(x) {if ((x)) { \
|
||||||
|
|
|
@ -185,7 +185,7 @@
|
||||||
#define tzMalloc(elt_count, type) (type *)m_alloc((elt_count)*sizeof(type))
|
#define tzMalloc(elt_count, type) (type *)m_alloc((elt_count)*sizeof(type))
|
||||||
#define tzCalloc(elt_count, type) (type *)c_alloc((elt_count), sizeof(type))
|
#define tzCalloc(elt_count, type) (type *)c_alloc((elt_count), sizeof(type))
|
||||||
#define tzDestroy(x) {if ((x)) { \
|
#define tzDestroy(x) {if ((x)) { \
|
||||||
free((x)); \
|
swzFree((x)); \
|
||||||
(x) = NULL; \
|
(x) = NULL; \
|
||||||
}}
|
}}
|
||||||
#define tzFclose(x) {if ((x)) { \
|
#define tzFclose(x) {if ((x)) { \
|
||||||
|
|
Loading…
Reference in New Issue