Example #1
0
void choldc(double **a, int n, double p[])
{
    double** A;
    double *P;
    int i,j,k;

    /*  if(!(A = (double **)(malloc(sizeof(double *) * (n+1)))))
        error("Memory allocation failed for A in choldc.c \n");
    */
    if(!(P = (double *)(R_alloc((n+1), sizeof(double) ))))
        error("Memory allocation failed for P in choldc.c \n");
    /*
      for(i = 0; i <= n; i++) {
        if(!(A[i] = (double *)(malloc(sizeof(double) * (n+1)))))
          error("Memory allocation failed for A in choldc.c \n");
      }
    */
    for(i = 0; i < n; i++) {
        P[i+1] = (double)(p[i]);
        /*    for(j = 0; j <n ; j++)
              A[i+1][j+1] = (double)(a[i][j]); */
    }

    /*  double_choldc(A,n,P); */
    double_choldc(a,n,P);


    for(i = 0; i < n; i++) {
        p[i] = (double)(P[i+1]);
        /*    for(j = 0; j <n ; j++)
              a[i][j] = (double)(A[i+1][j+1]); */
    }

}
Example #2
0
File: numrec.c Project: nasa/QuIP
void dp_choldc(Data_Obj *a_dp, Data_Obj *p_dp)
{
	unsigned m, n;
	void *a_rowlist[MAX_DIM];
	/*
	n=OBJ_ROWS(a_dp);

	if( n > MAX_DIM ){
		NWARN("Sorry, MAX dimension exceeded in dp_choldc");
		sprintf(DEFAULT_ERROR_STRING,"dp_choldc:  MAX_DIM = %d, n = %d", MAX_DIM,n);
		NADVISE(DEFAULT_ERROR_STRING);
		return;
	}
	*/
	n=OBJ_COLS(a_dp);
	m=OBJ_ROWS(a_dp);

	if( n > MAX_DIM || m > MAX_DIM ){
		NWARN("Sorry, MAX dimension exceeded in dp_choldc");
		sprintf(DEFAULT_ERROR_STRING,"dp_choldc:  MAX_DIM = %d, n = %d, m = %d",
			MAX_DIM,n,m);
		NADVISE(DEFAULT_ERROR_STRING);
		return;
	}

	printf("nrmenu:numrec.c data %f\n", *((float *)OBJ_DATA_PTR(a_dp)));
	
	
	if( OBJ_MACH_PREC(a_dp) == PREC_SP ){
		float_init_rowlist((float **)(void *)a_rowlist,a_dp);

		float_choldc(((float **)(void *)a_rowlist)-1,n,((float *)OBJ_DATA_PTR(p_dp))-1);
		
	} else if( OBJ_MACH_PREC(a_dp) == PREC_DP ){
		double_init_rowlist((double **)(void *)a_rowlist,a_dp);

		double_choldc(((double **)(void *)a_rowlist)-1,n,((double *)OBJ_DATA_PTR(p_dp))-1);
	}
	else {
		NWARN("bad machine precision in dp_choldc");
	}
	
}