Пример #1
0
int square(double a[],double b[])
{
    
    // Init Julia
    jl_init_with_image("/Users/fgans/julia/julia-4d1b751dda/lib/julia", "sys.ji");
    JL_SET_STACK_BASE;
    
    // Define Array Type for 1D Array
    jl_value_t* array_type = jl_apply_array_type(jl_float64_type, 1);
    
    // Connect C-Arrays to julia Arrays
    jl_array_t *a_jl = jl_ptr_to_array_1d(array_type, a, 1, 0);
    jl_array_t *b_jl = jl_ptr_to_array_1d(array_type, b, 1, 0);
   

    // Load julia code
    jl_eval_string("include(\"square.jl\")");
    
    // Get function
    jl_function_t *func  = jl_get_function(jl_main_module, "square");
    if (func==NULL) {
        printf("Function not found!\n");
        return -1;
    }
    
    // Apply function
    jl_call2(func, (jl_value_t*)a_jl,(jl_value_t*)b_jl);
    if (jl_exception_occurred()) printf("%s \n", jl_typeof_str(jl_exception_occurred()));
    
    

    return 0;
}
Пример #2
0
JL_DLLEXPORT void jl_init(void)
{
    char *libjldir = NULL;

    void *hdl = (void*)jl_load_dynamic_library_e(NULL, JL_RTLD_DEFAULT);
    if (hdl)
        libjldir = dirname((char*)jl_pathname_for_handle(hdl));
    if (libjldir)
        jl_init_with_image(libjldir, jl_get_default_sysimg_path());
    else {
        printf("jl_init unable to find libjulia!\n");
        abort();
    }
}
Пример #3
0
JL_DLLEXPORT void jl_init(const char *julia_home_dir)
{
    jl_init_with_image(julia_home_dir, NULL);
}
Пример #4
0
DLLEXPORT void jl_init(char *julia_home_dir)
{
    jl_init_with_image(julia_home_dir, JL_SYSTEM_IMAGE_PATH);
}