void glp_create_index(glp_prob *lp)
{   GLPROW *row;
    GLPCOL *col;
    int i, j;
    /* create row name index */
    if (lp->r_tree == NULL)
    {   lp->r_tree = avl_create_tree(avl_strcmp, NULL);
        for (i = 1; i <= lp->m; i++)
        {   row = lp->row[i];
            xassert(row->node == NULL);
            if (row->name != NULL)
            {   row->node = avl_insert_node(lp->r_tree, row->name);
                avl_set_node_link(row->node, row);
            }
        }
    }
    /* create column name index */
    if (lp->c_tree == NULL)
    {   lp->c_tree = avl_create_tree(avl_strcmp, NULL);
        for (j = 1; j <= lp->n; j++)
        {   col = lp->col[j];
            xassert(col->node == NULL);
            if (col->name != NULL)
            {   col->node = avl_insert_node(lp->c_tree, col->name);
                avl_set_node_link(col->node, col);
            }
        }
    }
    return;
}
Esempio n. 2
0
int  loop_init()
{
    WSADATA data;
    DWORD bytes = 0;
    int error;
    SOCKET sockfd = INVALID_SOCKET;
    GUID guid_connectex = WSAID_CONNECTEX;

    CHECK(WSAStartup(MAKEWORD(2, 2), &data) == 0);
    sockfd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    if(sockfd == INVALID_SOCKET)
    {
        fprintf(stderr, ("WSAIoctl() failed, %s."), LAST_ERROR_MSG);
        return 0;
    }

    /* obtain ConnectEx function pointer */
    error = WSAIoctl(sockfd, SIO_GET_EXTENSION_FUNCTION_POINTER, &guid_connectex,
        sizeof(guid_connectex), &default_loop.fnConnectEx, sizeof(default_loop.fnConnectEx),
        &bytes, 0, 0);
    closesocket(sockfd);
    if (error == SOCKET_ERROR)
    {
        fprintf(stderr, ("WSAIoctl() failed, %s."), LAST_ERROR_MSG);
        return 0;
    }

    /* connection tree container */
    default_loop.total_connection = avl_create_tree();
    if (default_loop.total_connection == NULL)
    {
        fprintf(stderr, ("avl_create_tree() failed."));
        return 0;
    }

    /* per-handle data */
    default_loop.connection_data = avl_create_tree();
    if (default_loop.connection_data == NULL)
    {
        fprintf(stderr, ("avl_create_tree() failed."));
        avl_destroy_tree(default_loop.connection_data);
        return 0;
    }

    /* create I/O completion port handle */
    default_loop.completion_port = CreateCompletionPort(0);
    if (default_loop.completion_port == NULL)
    {
        fprintf(stderr, ("CreateCompletionPort() failed, %s."), LAST_ERROR_MSG);
        avl_destroy_tree(default_loop.total_connection);
        avl_destroy_tree(default_loop.connection_data);
        return 0;
    }

    return 1;
}
int comp_routine_init()
{
    WSADATA data;
    CHECK(WSAStartup(MAKEWORD(2, 2), &data) == 0);
    g_connections_map = avl_create_tree();
    return 1;
}
Esempio n. 4
0
void glp_create_v_index(glp_graph *G)
{   /* create vertex name index */
    glp_vertex *v;
    int i;
    if (G->index == NULL)
    {   G->index = avl_create_tree(avl_strcmp, NULL);
        for (i = 1; i <= G->nv; i++)
        {   v = G->v[i];
            xassert(v->entry == NULL);
            if (v->name != NULL)
            {   v->entry = avl_insert_node(G->index, v->name);
                avl_set_node_link(v->entry, v);
            }
        }
    }
    return;
}
Esempio n. 5
0
MPL *mpl_initialize(void)
{     MPL *mpl;
      mpl = xmalloc(sizeof(MPL));
      /* scanning segment */
      mpl->line = 0;
      mpl->c = 0;
      mpl->token = 0;
      mpl->imlen = 0;
      mpl->image = xcalloc(MAX_LENGTH+1, sizeof(char));
      mpl->image[0] = '\0';
      mpl->value = 0.0;
      mpl->b_token = 0;
      mpl->b_imlen = 0;
      mpl->b_image = xcalloc(MAX_LENGTH+1, sizeof(char));
      mpl->b_image[0] = '\0';
      mpl->b_value = 0.0;
      mpl->f_dots = 0;
      mpl->f_scan = 0;
      mpl->f_token = 0;
      mpl->f_imlen = 0;
      mpl->f_image = xcalloc(MAX_LENGTH+1, sizeof(char));
      mpl->f_image[0] = '\0';
      mpl->f_value = 0.0;
      mpl->context = xcalloc(CONTEXT_SIZE, sizeof(char));
      memset(mpl->context, ' ', CONTEXT_SIZE);
      mpl->c_ptr = 0;
      mpl->flag_d = 0;
      /* translating segment */
      mpl->pool = dmp_create_poolx(0);
      mpl->tree = avl_create_tree(avl_strcmp, NULL);
      mpl->model = NULL;
      mpl->flag_x = 0;
      mpl->as_within = 0;
      mpl->as_in = 0;
      mpl->as_binary = 0;
      mpl->flag_s = 0;
      /* common segment */
      mpl->strings = dmp_create_poolx(sizeof(STRING));
      mpl->symbols = dmp_create_poolx(sizeof(SYMBOL));
      mpl->tuples = dmp_create_poolx(sizeof(TUPLE));
      mpl->arrays = dmp_create_poolx(sizeof(ARRAY));
      mpl->members = dmp_create_poolx(sizeof(MEMBER));
      mpl->elemvars = dmp_create_poolx(sizeof(ELEMVAR));
      mpl->formulae = dmp_create_poolx(sizeof(FORMULA));
      mpl->elemcons = dmp_create_poolx(sizeof(ELEMCON));
      mpl->a_list = NULL;
      mpl->sym_buf = xcalloc(255+1, sizeof(char));
      mpl->sym_buf[0] = '\0';
      mpl->tup_buf = xcalloc(255+1, sizeof(char));
      mpl->tup_buf[0] = '\0';
      /* generating/postsolving segment */
      mpl->rand = rng_create_rand();
      mpl->flag_p = 0;
      mpl->stmt = NULL;
#if 1 /* 11/II-2008 */
      mpl->dca = NULL;
#endif
      mpl->m = 0;
      mpl->n = 0;
      mpl->row = NULL;
      mpl->col = NULL;
      /* input/output segment */
      mpl->in_fp = NULL;
      mpl->in_file = NULL;
      mpl->out_fp = NULL;
      mpl->out_file = NULL;
      mpl->prt_fp = NULL;
      mpl->prt_file = NULL;
      /* solver interface segment */
      if (setjmp(mpl->jump)) xassert(mpl != mpl);
      mpl->phase = 0;
      mpl->mod_file = NULL;
      mpl->mpl_buf = xcalloc(255+1, sizeof(char));
      mpl->mpl_buf[0] = '\0';
      return mpl;
}