Пример #1
0
Файл: libC.c Проект: NCPP/icclim
void find_GSL_3d(const float *indata, int _sizeT,int _sizeI,int _sizeJ, double *outdata, float temp, float fill_val, int indexMiddleOfYear)
    {
    
        setGlobalVariables(_sizeT,_sizeI,_sizeJ);
        int i,j;
        
            for (i = 0; i < sizeI; i++)
                {
                    for (j = 0; j < sizeJ; j++)
                        {
                            outdata[i*sizeJ+j] = find_GSL_1d(indata,i,j,temp, fill_val, indexMiddleOfYear);
                        }
                }
    }
Пример #2
0
void dj_init()
{
    //before anything starts, define global variables
    struct tossim_global_variables* global_variables = malloc(sizeof(struct tossim_global_variables));
    struct tossim_UGLY_global_variables* UGLY_global_variables = malloc(sizeof(struct tossim_UGLY_global_variables));
    setGlobalVariables(global_variables);
    setUglyGlobalVariables(UGLY_global_variables);

    dj_vm *vm;
    unsigned char *mem = malloc(HEAPSIZE);
    // initialise memory manager
    dj_mem_init(mem, HEAPSIZE);
    _global_ref_t_base_address = (char*)mem - 42;

    // initialise timer
    dj_timer_init();

    // create a new VM
    vm = dj_vm_create();
    if (vm == nullref) {
        //fail with a unknown type exception
        dj_panic(-1);
    }

    // tell the execution engine to use the newly created VM instance
    dj_exec_setVM(vm);

    // load the embedded infusions

    dj_named_native_handler handlers[] = {
        { "base", &base_native_handler },
        { "darjeeling", &darjeeling_native_handler }
#ifdef WITH_RADIO
        ,{ "radio", &radio_native_handler }
#endif
    };

    int length = sizeof(handlers)/ sizeof(handlers[0]);
    archive.start = (dj_di_pointer)di_archive_data;
    archive.end = (dj_di_pointer)(di_archive_data + di_archive_size);

    dj_vm_loadInfusionArchive(vm, &archive, handlers, length);      // load the embedded infusions


    DARJEELING_PRINTF("%d infusions loaded\n", dj_vm_countInfusions(dj_exec_getVM()));

    // pre-allocate an OutOfMemoryError object
    dj_object *obj = dj_vm_createSysLibObject(dj_exec_getVM(), BASE_CDEF_java_lang_OutOfMemoryError);
    dj_mem_setPanicExceptionObject(obj);
}
Пример #3
0
Файл: libC.c Проект: NCPP/icclim
void find_max_sum_slidingwindow_3d(const float *indata, int _sizeT, int _sizeI, int _sizeJ, double *outdata, int w_width, float fill_val)
    {
    // find max sum of a consecutif sequence of w_width elements (sliding window of size=w_width) (along time axis)

        setGlobalVariables(_sizeT,_sizeI,_sizeJ); 
        int i,j;
        
            for (i = 0; i < sizeI; i++)
                {
                    for (j = 0; j < sizeJ; j++)
                        {
                            outdata[i*sizeJ+j] = get_max_sum_window_1d(indata, i, j, w_width, fill_val); 
                        }
                }
    }
Пример #4
0
Файл: libC.c Проект: NCPP/icclim
// fonction appelee depus python 
void find_max_len_consec_sequence_3d(const float *indata, int _sizeT,int _sizeI,int _sizeJ, double *outdata, float temp, float fill_val, char *operation) 
    {
    // find max length of a consecutif sequence in 3D array (along time axis) in a logical condition
    
        //outdata = (double *) malloc (_sizeI*_sizeJ*sizeof(double));
        setGlobalVariables(_sizeT,_sizeI,_sizeJ);
        int i,j;
        //printf("coucou");
            for (i = 0; i < sizeI; i++)
                {
                    for (j = 0; j < sizeJ; j++)
                        {
                            //outdata[i*sizeJ+j] = find_max_len_consec_sequence_1d(indata,i,j,temp);
                            outdata[i*sizeJ+j] = find_max_len_consec_sequence_1d(indata,i,j,temp, fill_val, operation); 
                        }
                }
    }