static int do_search ( int argc, char ** argv, mpd_Connection * conn, int exact ) { Constraint *constraints; int numconstraints; int i; if (argc % 2 != 0) DIE("arguments must be pairs of search types and queries\n"); numconstraints = get_constraints(argc, argv, &constraints); if (numconstraints < 0) return -1; mpd_startSearch(conn, exact); for (i = 0; i < numconstraints; i++) { mpd_addConstraintSearch(conn, constraints[i].type, charset_to_utf8(constraints[i].query)); } free(constraints); mpd_commitSearch(conn); printErrorAndExit(conn); print_filenames(conn); my_finishCommand(conn); return 0; }
long __declspec(dllexport) WINAPI _get_constraints(lprec *lp, double *constraints) { long ret; if (lp != NULL) { freebuferror(); ret = get_constraints(lp, constraints); } else ret = 0; return(ret); }
int cmd_list ( int argc, char ** argv, mpd_Connection * conn ) { Constraint *constraints; int numconstraints = 0; int type; int i; char *tag; type = get_search_type(argv[0]); if (type < 0) return -1; argc -= 1; argv += 1; if (argc > 0) { if (argc % 2 != 0) { DIE("arguments must be a tag type and " "optional pairs of search types and queries\n"); } numconstraints = get_constraints(argc, argv, &constraints); if (numconstraints < 0) return -1; } mpd_startFieldSearch(conn, type); if (argc > 0) { for (i = 0; i < numconstraints; i++) { mpd_addConstraintSearch(conn, constraints[i].type, charset_to_utf8(constraints[i].query)); } free(constraints); } mpd_commitSearch(conn); printErrorAndExit(conn); while ((tag = mpd_getNextTag(conn, type))) { printErrorAndExit(conn); printf("%s\n", charset_from_utf8(tag)); free(tag); } my_finishCommand(conn); return 0; }
void constraint::refreshDomainMap() { int t=0; for(int i=0;i<n;++i) { for(int j=0;j<n;++j) { if(solution[t] == 0) { if(tokenReader::dh) domainMap[t] = get_dh_constraints(i,j); else domainMap[t] = get_constraints(i,j); if(tokenReader::mrv) { mrv_map[t] = domainMap[t].size(); } } ++t; } } }
bool add_constraints(int argc, char ** argv, struct mpd_connection *conn) { struct constraint *constraints; if (argc % 2 != 0) DIE("arguments must be pairs of search types and queries\n"); int numconstraints = get_constraints(argc, argv, &constraints); if (numconstraints < 0) return false; for (int i = 0; i < numconstraints; i++) { add_constraint(conn, &constraints[i]); } free(constraints); return true; }
void constraint::solution_init() { constraint_map = std::vector<std::vector<int>>((n*n), std::vector<int>()); nns =0; int t=0; for(int i=0;i<n;++i) { for(int j=0;j<n;++j) { solution.push_back( rows[i][j] ); if(tokenReader::dh) domainMap.push_back(get_dh_constraints(i,j)); else domainMap.push_back(get_constraints(i,j)); if(tokenReader::mrv) mrv_map[t] = domainMap.back().size(); if(solution[t] != 0) { ++nns; domainMap[t].clear(); if(tokenReader::dh) dh_map[i][j] = 0; } ++t; } } }