Ignore:
Timestamp:
08/25/11 15:55:18 (8 years ago)
Author:
aivar
Message:

Removed code that requires C99 extensions to allow compilation in Visual Studio.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/projects/slim-curve/src/main/c/EcfUtil.c

    r7710 r7737  
    11//#include <ansi_c.h> 
    22/* The 2010 version of the ECF library.  This has basically been 
    3    completely rewritten to avoid license issues.   
     3   completely rewritten to avoid license issues. 
    44   Also, this takes account of the fact that we may be 
    55   handling Poisson noise. 
     
    4444    float max; 
    4545    float temp; 
    46     float pivotInverse[n]; 
     46    float *pivotInverse = (float *)malloc(n * sizeof(float)); 
    4747    int i, j, k, m; 
    48  
    4948    /*int q, w; 
    5049    printf("----------\n"); 
     
    8382        if (0.0 == a[k][k]) 
    8483        { 
     84                        free(pivotInverse); 
    8585            return -2; // singular matrix 
    8686        } 
     
    119119    }*/ 
    120120 
     121        free(pivotInverse); 
    121122    return 0; 
    122123} 
     
    130131{ 
    131132    int returnValue = 0; 
    132     float identity[n][n]; 
     133    float **identity = GCI_ecf_matrix(n, n); 
    133134    float **work = GCI_ecf_matrix(n, n); 
    134135    int i, j, k; 
     
    149150        } 
    150151    } 
    151     GCI_ecf_free_matrix(work); 
    152152 
    153153    // copy over results 
     
    157157        } 
    158158    } 
     159 
     160    GCI_ecf_free_matrix(identity); 
     161    GCI_ecf_free_matrix(work); 
    159162    return returnValue; 
    160163} 
     
    223226  Performs an in-place Crout lower/upper decomposition of n x n matrix A. 
    224227  Values on or below diagonals are lowers, values about the 
    225   diagonal are uppers, with an implicit 1.0 value for the  
     228  diagonal are uppers, with an implicit 1.0 value for the 
    226229  diagonals. 
    227230  Returns 0 upon success, -2 if matrix is singular. 
     
    332335    int nvbl; 
    333336    float sum; 
    334      
     337 
    335338    // rearrange the elements of the b vector in place. 
    336339    startIndex = order[0]; 
     
    351354    for (iRow = 1; iRow < n; ++iRow) { 
    352355        sum = 0.0; 
    353         int jCol; 
    354356        for (jCol = 0; jCol < iRow; ++jCol) { 
    355357            sum += lu[iRow][jCol] * b[jCol]; 
     
    378380int GCI_solve_lu_decomp(float **a, int n, float *b) 
    379381{ 
    380     int order[n]; 
     382    int *order = (int *) malloc(n * sizeof(int)); 
    381383    int return_value = lu_decomp(a, n, order); 
    382384    if (return_value >= 0) { 
    383385        return_value = solve_lu(a, n, b, order); 
    384386    } 
     387    free(order); 
    385388    return return_value; 
    386389} 
     
    393396{ 
    394397    int returnValue; 
    395     int order[n]; 
    396     float identity[n][n]; 
     398    int *order = (int *) malloc(n * sizeof(int)); 
     399    float **identity = GCI_ecf_matrix(n, n); 
    397400    int i, j; 
    398401 
     
    413416        } 
    414417    } 
     418 
     419        free(order); 
     420    GCI_ecf_free_matrix(identity); 
    415421    return returnValue; 
    416422} 
     
    448454 
    449455        k = mfit-1; 
    450         for (j=nparam-1; j>=0; j--)  
     456        for (j=nparam-1; j>=0; j--) 
    451457        { 
    452                 if (paramfree[j])  
     458                if (paramfree[j]) 
    453459                { 
    454460                        for (i=0; i<nparam; i++) SWAP(covar[i][k], covar[i][j]); 
     
    781787        a2inv = 1/param[2]; 
    782788        a3inv = 1/param[3]; 
    783          
     789 
    784790        /* When x=0 */ 
    785791        y[0] = param[1]; 
     
    10881094void ecf_ExportParams_OpenFile (void) 
    10891095{ 
    1090         ecf_exportFileStream = fopen(ecf_exportParams_path, "a");  
     1096        ecf_exportFileStream = fopen(ecf_exportParams_path, "a"); 
    10911097} 
    10921098 
     
    11001106{ 
    11011107        int i; 
    1102          
     1108 
    11031109        for (i=0; i<nparam; i++) fprintf(ecf_exportFileStream, "%g, ", param[i]); 
    11041110        fprintf(ecf_exportFileStream, "%g\n", chisq); 
Note: See TracChangeset for help on using the changeset viewer.