Hi, and welcome to this site! My name is Bo Haglund and I live in Stockholm. My web site contains download information for my bridge double dummy solver DDS and for my Sudoku programs.

2014-05-11: DDS 2.5.2 and 1.1.20 are released:

A bug in the par calculation has been fixed in both releases.

2014-04-01: DDS 1.1.19 is released:

For DDS 1.1.18, its DDS lib file dds.lib is too old to work together with applications in Visual C++ 2013, so in DDS 1.1.19, dds.lib is rebuilt. The "plus" version of DDS 1.1.19 includes the same par calculations functions as in DDS 2.5.1. DDS 1.1.19 is about 9% faster than DDS 1.1.18.

2014-03-07: DDS 2.5.1 is released:

In DDS 2.5.0, usage of OpenMP was extended to also include Windows. However, this meant that supporting DLLs need to also be included in addition to the DDS.DLL. This is impractical so for Windows DDS 2.5.1 uses the Win API as in DDS 2.4.


My bridge double dummy solver include source code as well as DLL executables. The program is free, licensed under an open source license Apache 2.0 .

DDS has been implemented for Windows, Linux and MacOSX. Initial work on porting from Windows to Linux and MacOSX has been done by Alex Martelli, here is the link to Alex bridge site. More recent porting and a dds/ddd package for Linux in Debian which includes a Python extension has been assembled by Christoph Berg, look here and his bridge hand viewer/editor application "tenace" here.

There is a published .net wrapper around DDS by Andrew Orsich here.

The DLL executables are for Windows. They can be freely used for any purpose without charge. However, if you use a DLL for your own program, I would like that you give a reference concerning its origination.

The DLLs are compiled both using GCC/MinGW ("dll-mingw") and using Visual C++ ("dll-vcc"). The GCC/MinGW alternative is fastest and should normally be selected. The Visual C++ alternative is included as a solution if an upgrade using the MinGW dds.dll fails, perhaps because the existing .lib file can't handle the MinGW dds.dll.

The Multi-thread version of DDS

The current version is 2.5.2.

The SolveBoard function is thread-safe, making it possible to call SolveBoard from several threads in parallel.

The Multi-thread DDS interface is compatible with the Single-thread DDS interface (the "plus" Single-thread DDS version must then be used).

Multi-thread DDS includes:

- The function CalcDDtable which uses multi-thread calls to SolveBoard for calculating the double dummy values of the 20 trump suit / declarer hand combinations. 

- The SolveAllChunks function which solves a bunch of boards using the multi-thread support. The boards are grouped in chunks, where a chunk contains a number of boards handled by the same thread.

- The CalcAllTables function which solves a bunch of "DD tables". 

- Par calculation functions.

Multi-thread DDS also allows a PBN format for the cards in the deal information. For this purpose the SolveBoard, CalcDDtable and CalcAllTables functions each has an alternative function definition for calling with the PBN format.

Thread-safe SolveBoard for Windows requires XP or later. CalcDDtable, CalcAllTables and SolveAllChunks for Windows require Vista or later. Thread-safe SolveBoard, CalcDDtable, SolveAllChunks and CalcAllTables require MinGW version 4.4.0 or later release or Visual C++ 2005 or later.

For Windows, DDS  uses the Windows API for the multi-thread support . 

For non-Windows users, DDS needs OpenMP for the multi-thread support. 

The bridge double dummy solver DLL function descriptions can be seen here for DDS 2.5.2.

Single-thread DDS

Current version is 1.1.20. The DLL function description for the "plus" version can be seen here and for the pbn/no pbn versions here.

Usage of DDS

The Multi-thread DDS companion program by Bob Richardson provides a very attractive GUI. Bob's program DD Solver 10 is also free and can be downloaded from his website.

A bridge deals simulation program for Windows, Bridge Deals Simulator, uses Thomas Andrew's Deal 3.0/3.1 to calculate the probability to make a contract based on the double dummy results from a number of generated deals. It requires that the Windows version of Deal 3 has been installed, latest release is Deal 3.1.9.

Deal 3.1 includes a built-in double dummy solver, based on source code from DDS.

The double dummy driver (DDD) program provides a command line interface for testing and using DDS. DDD 1.0.5 supports DDS 1.1. It provides functions to get maximum trick values of deals stored in an extended GIB DD data base format and also to play through deals double dummy. It also includes a deal generator. DDD is written by Flip Cronje. The program is free under GPL. A Windows/XP executable (ddd.exe) together with the source code files can be downloaded here.

Other users of the DDS DLL: Gerard Joyez with the program Bridge Moniteur, Lorne Anderson with Bridge Analyser, Ray Spalding with BridgeComposer, Tomas Brenning with Magic Contest / Ruter, Andre de Ruiter with B-Bridge, Alexis Maugat with Master Bridge Analyser, Dirk Willecke with RuderSyv, Matthew Kidd with ACBLmerge and  Lead Solver, Dealer4, Bridgemate, Andre Scholberg with BridgeThink, Ted Muller Bridge Software, Karl Petreczek with BridgeDDS and Bridge4Scorer,  Antony Lee with redeal and John Goacher with Bridge Solver.

Edward Marzo uses an adapted version of DDS in Dealmaster Pro.


The Sudoku programs are combined Sudoku solvers/helpers/puzzle generators for 9x9 and 16x16 puzzle sizes. Sudoku Generator 1.1.1 also have support for the diagonal Sudoku version ("Sudoku X"). Big Sudoku Creator 0.5.1 is a program for 16x16 puzzle sizes, it is similar to Sudoku Creator 1.1.1 in functionality and look and feel. In this release there are no support for the diagonal version and symmetric puzzles. Included files are the program and its DLL, a User's Guide, news compared to the previous release and a short description of the functions available through the DLL.

The Sudoku DLL function description can be seen here for the 9x9 puzzle size, The Sudoku DLL function description can be seen here for the 16x16 puzzle size.


All of my programs are free with no cost. If any problems occur with the programs, please contact me so I can make a correction. I can be reached on the address: bo.haglund@bahnhof.se

Bridge SW Downloads

Double Dummy Solver 2.5.2 with PBN, SolveAllBoards, SolveAllChunks, CalcAllTables, CalcAllTablesPBN and PAR calculation - DLL

Double Dummy Solver 2.5.2 with PBN - DLL

Double Dummy Solver 2.5.2 without PBN - DLL

Double Dummy Solver 2.5.2 - Source code Check the readme file for compile instructions.

Double Dummy Solver 1.1.20 with PBN - DLL

The application using the DLL may have to be adapted to handle the PBN alternative.

Double Dummy Solver 1.1.20 without PBN - DLL

A previous DLL prior to 1.1.20 can be replaced by the 1.1.20 DLL without any further implications.

Double Dummy Solver 1.1.20 plus version, compatible with 2.5.2 - DLLs

The CalcDDtable, CalcDDtablePBN, CalcPar and CalcParPBN functions are available. 

Double Dummy Solver 1.1.20 - Source code

Bridge Deals Simulator

At installation, the destination folder must be the same as where the deal.exe resides (deal31x). The bds.exe file must be situated in the same (sub)folder as deal.exe. Only a version 1 dds.dll can be used.

Double Dummy Driver (DDD)

Contains a Windows executable (ddd.exe) together with the source code files.

Double Dummy Data Base

A data base storing DD results for 100000 deals. The format follows the GIB DD data base format, described in the giblib.h file in the DDD package.

Sudoku SW Downloads

Sudoku Generator 1.1.1 swedish version.

Sudoku Generator 1.1.1 english version. Big Sudoku Generator 0.5.1 english version. The DLL must be kept in the same directory as the program executable.

Updated 2014-05-11