dds-bridge-sys 3.1.0

Generated bindings to DDS, the double dummy solver for bridge
Documentation
#ifndef DDS_BRIDGE_SYS_DDS_CONTEXT_H
#define DDS_BRIDGE_SYS_DDS_CONTEXT_H

#include <api/dll.h>

#ifdef __cplusplus
extern "C" {
#endif

typedef struct DdsSolverContext DdsSolverContext;

typedef enum DdsTtKind {
  DDS_TT_KIND_SMALL = 0,
  DDS_TT_KIND_LARGE = 1
} DdsTtKind;

typedef struct DdsSolverConfig {
  int tt_kind;
  int tt_mem_default_mb;
  int tt_mem_maximum_mb;
} DdsSolverConfig;

DdsSolverContext* dds_solver_context_new(const DdsSolverConfig* cfg);
void              dds_solver_context_free(DdsSolverContext* ctx);

void dds_solver_context_reset_for_solve(DdsSolverContext* ctx);
void dds_solver_context_clear_tt(DdsSolverContext* ctx);
void dds_solver_context_resize_tt(DdsSolverContext* ctx, int def_mb, int max_mb);
void dds_solver_context_configure_tt(DdsSolverContext* ctx, int kind, int def_mb, int max_mb);
void dds_solver_context_dispose_trans_table(DdsSolverContext* ctx);

int dds_solve_board(DdsSolverContext* ctx, const struct Deal* dl,
                    int target, int solutions, int mode,
                    struct FutureTricks* fut);

int dds_calc_dd_table(DdsSolverContext* ctx, const struct DdTableDeal* d,
                      struct DdTableResults* out);

int dds_calc_dd_table_pbn(DdsSolverContext* ctx, const struct DdTableDealPBN* d,
                          struct DdTableResults* out);

int dds_calc_par(DdsSolverContext* ctx, const struct DdTableDeal* d, int vul,
                 struct DdTableResults* tab, struct ParResults* par);

int dds_calc_par_from_table(const struct DdTableResults* tab, int vul,
                            struct ParResults* par);

#ifdef __cplusplus
}
#endif

#endif