Skip to content

Commit 6b598e6

Browse files
committed
Merge pull request #5 from sorenhein/pre-28
Pre 28
2 parents b2dd7f6 + c183db5 commit 6b598e6

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

78 files changed

+114013
-103842
lines changed

ChangeLog

Lines changed: 578 additions & 472 deletions
Large diffs are not rendered by default.

INSTALL

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,12 @@ know what you're doing and you'll figure it out :-).
77

88
The first step is to compile the library.
99

10+
If you have trouble, read the Makefile. They all have the compiler
11+
warning levels set rather high, and they are set to fail even on
12+
warnings. You can turn this off. The Visual C++ version also
13+
requires a couple of tools that you may not have, but this too is
14+
easy to turn off.
15+
1016
If you want, the optional next step is to test the library.
1117

1218
Generally speaking:
@@ -142,7 +148,11 @@ we are surprised -- please report it to us.
142148
ddd
143149
---
144150
This program was written by Flip Cronje, and we have modified it
145-
minimally to support a multi-threaded DLL.
151+
minimally to support a multi-threaded DLL. However, it doesn't
152+
use the full capabilities of DDS, as it was written at a time when
153+
functions such as CalcAllTables and SolveAllBoards were not yet
154+
available. Therefore it is rather slow, but it does have a nice
155+
hand generator built in.
146156

147157

148158
examples

README

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,17 @@ thank the following here.
2929

3030
The code in Par.cpp for calculating par scores and contracts is
3131
based on Matthew Kidd's perl code for ACBLmerge. He has kindly
32-
given permission to include a C++ adaptation in DDS.
32+
given permission to include a C++ adaptation in DDS. He also
33+
tested the code on Visual C++ 2010.
3334

3435
Alex Martelli cleaned up and ported code to Linux and to Mac OS X
3536
in 2006. The code grew a bit outdated over time, and in 2014
3637
Matthew Kidd contributed updates.
3738

39+
Brian Dickens found bugs in v2.7 and encouraged us to look at GitHub.
40+
He also set up the entire historical archive and supervised our
41+
first baby steps on GitHub.
42+
3843
Soren Hein made a number of contributions before becoming a
3944
co-author starting in v2.8 in 2014.
4045

@@ -51,14 +56,16 @@ The distribution consists of the following directories.
5156
test purposes.
5257
* doc, where the library interface is documented and the algorithms
5358
behind DDS are explained at a high level.
54-
* ddd, an old driver program for DDS contributed under the GPL
55-
(not under the Apache license) by Flip Cronje and updated by
56-
us to support the multi-threaded library file.
5759
* test, a test program.
5860
* examples, some minimal programs showing how to interface in
5961
practice with a number of library functions.
6062
* hands, a repository for input files to the test programs.
6163

64+
There is a parallel distribution, ddd, consisting of an old driver
65+
for DDS contributed under the GPL (not under the Apache license) by
66+
Flip Cronje and updated by us to support the multi-threaded library
67+
file.
68+
6269

6370
Supported systems
6471
=================

README.md

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
Introduction
2+
============
3+
DDS is a double-dummy solver of bridge hands. It is provided as a Windows DLL and as C++ source code suitable for a number of operating systems. It supports single-threading and multi-threading for improved performance.
4+
5+
DDS offers a wide range of functions, including par-score calculations.
6+
7+
Please refer to the [home page](http://privat.bahnhof.se/wb758135) for details.
8+
9+
The current version is DDS 2.8.0 released in November 2014 and licensed under the Apache 2.0 license in the LICENSE FILE.
10+
11+
Release notes are in the ChangeLog file.
12+
13+
(c) Bo Haglund 2006-2014, (c) Bo Haglund / Soren Hein 2014.
14+
15+
16+
Credits
17+
=======
18+
Many people have generously contributed ideas, code and time to make DDS a great program. While leaving out many people, we thank the following here.
19+
20+
The code in Par.cpp for calculating par scores and contracts is based on Matthew Kidd's perl code for ACBLmerge. He has kindly given permission to include a C++ adaptation in DDS.
21+
22+
Alex Martelli cleaned up and ported code to Linux and to Mac OS X in 2006. The code grew a bit outdated over time, and in 2014 Matthew Kidd contributed updates.
23+
24+
Brian Dickens found bugs in v2.7 and encouraged us to look at GitHub. He also set up the entire historical archive and supervised our first baby steps on GitHub.
25+
26+
Foppe Hemminga maintains DDS on ArchLinux.
27+
28+
Soren Hein made a number of contributions before becoming a co-author starting in v2.8 in 2014.
29+
30+
31+
Overview
32+
========
33+
34+
The distribution consists of the following directories.
35+
36+
* **src**, the source code for the library.
37+
* **include**, where the public interface of the library is specified.
38+
* **lib**, the place where the library file is "installed" for test purposes.
39+
* **doc**, where the library interface is documented and the algorithms behind DDS are explained at a high level.
40+
* hands, a repository for input files to the test programs.
41+
* **test**, a test program.
42+
* **examples**, some minimal programs showing how to interface in practice with a number of library functions.
43+
44+
There is a parallel distribution, **ddd**, consisting of an old driver program for DDS contributed under the GPL (not under the Apache license) by Flip Cronje and updated by us to support the multi-threaded library file.
45+
46+
47+
Supported systems
48+
=================
49+
The DLLs work out of the box on Windows systems. There is a single-threaded version for old Windows versions, and there is a multi-threaded version that works on all modern Windows systems. This is the one you should use if in doubt.
50+
51+
The Windows versions use the Windows multi-threading. The code compiles on windows (see INSTALL) with at least:
52+
53+
* Visual C++ 2010 Express editions or later.
54+
* The TDM-GCC/Mingw port of g++.
55+
* g++ on Cygwin.
56+
57+
We have also compiled the code and/or had help from other contributors on the following systems.
58+
59+
* Linux Ubuntu with g++ and with OpenMP multi-threading.
60+
* Mac OS 10.9 with g++ and with OpenMP multi-threading. Also with clang without multi-threading.
61+
62+
Here the libraries are .a files, not DLLs. We might also make .so libraries in the future.
63+
64+
Note that Apple stopped using g++ in Xcode a while back, DDS does compile using the clang compiler, but since DDS does not support pthreads multi-threading, DDS becomes single-threaded. To get OpenMP multi-threading you need to use the Homebrew installer and do a "brew reinstall gcc --without-multilib". The "without-multilib" is important because you won't get OpenMP otherwise, and that's the whole point. Thanks for Matthew Kidd for these instructions.
65+
66+
67+
Usage
68+
=====
69+
70+
DDS tries to figure out the available number of cores and the available memory. Based on this, DDS calculates a reasonable number of threads to use. The user can override this by calling the SetMaxThreads() function. In principle SetMaxThreads() can be called multiple times, but there is overhead associated with this, so only call it at the beginning of your program unless you really want to change the number of threads dynamically.
71+
72+
DDS on Windows calls SetMaxThreads() itself when it is attached to a process, so you don't have to. On Unix-like systems we use an equivalent mechanism, but we have had a report that this does not always happen in the right order of things, so you may want to call SetMaxThreads() explicitly.
73+
74+
75+
Bugs
76+
====
77+
Version 2.8.0 has no known bugs.
78+
79+
Please report bugs to bo.haglund@bahnhof.se and soren.hein@gmail.com.
80+
376 KB
Binary file not shown.
738 KB
Binary file not shown.
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2+
<a:clrMap xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" bg1="lt1" tx1="dk1" bg2="lt2" tx2="dk2" accent1="accent1" accent2="accent2" accent3="accent3" accent4="accent4" accent5="accent5" accent6="accent6" hlink="hlink" folHlink="folHlink"/>
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<xml xmlns:o="urn:schemas-microsoft-com:office:office">
2+
<o:MainFile HRef="../DLL-dds_28_x.htm"/>
3+
<o:File HRef="item0001.xml"/>
4+
<o:File HRef="props002.xml"/>
5+
<o:File HRef="themedata.thmx"/>
6+
<o:File HRef="colorschememapping.xml"/>
7+
<o:File HRef="header.htm"/>
8+
<o:File HRef="filelist.xml"/>
9+
</xml>
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
<html xmlns:v="urn:schemas-microsoft-com:vml"
2+
xmlns:o="urn:schemas-microsoft-com:office:office"
3+
xmlns:w="urn:schemas-microsoft-com:office:word"
4+
xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"
5+
xmlns="http://www.w3.org/TR/REC-html40">
6+
7+
<head>
8+
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
9+
<meta name=ProgId content=Word.Document>
10+
<meta name=Generator content="Microsoft Word 15">
11+
<meta name=Originator content="Microsoft Word 15">
12+
<link id=Main-File rel=Main-File href="../DLL-dds_28_x.htm">
13+
</head>
14+
15+
<body lang=DE link=blue vlink=purple>
16+
17+
<div style='mso-element:footnote-separator' id=fs>
18+
19+
<p class=MsoNormal><span lang=EN-US><span style='mso-special-character:footnote-separator'><![if !supportFootnotes]>
20+
21+
<hr align=left size=1 width="33%">
22+
23+
<![endif]></span></span></p>
24+
25+
</div>
26+
27+
<div style='mso-element:footnote-continuation-separator' id=fcs>
28+
29+
<p class=MsoNormal><span lang=EN-US><span style='mso-special-character:footnote-continuation-separator'><![if !supportFootnotes]>
30+
31+
<hr align=left size=1>
32+
33+
<![endif]></span></span></p>
34+
35+
</div>
36+
37+
<div style='mso-element:endnote-separator' id=es>
38+
39+
<p class=MsoNormal><span lang=EN-US><span style='mso-special-character:footnote-separator'><![if !supportFootnotes]>
40+
41+
<hr align=left size=1 width="33%">
42+
43+
<![endif]></span></span></p>
44+
45+
</div>
46+
47+
<div style='mso-element:endnote-continuation-separator' id=ecs>
48+
49+
<p class=MsoNormal><span lang=EN-US><span style='mso-special-character:footnote-continuation-separator'><![if !supportFootnotes]>
50+
51+
<hr align=left size=1>
52+
53+
<![endif]></span></span></p>
54+
55+
</div>
56+
57+
<div style='mso-element:footer' id=f1>
58+
59+
<p class=MsoFooter align=center style='text-align:center'><!--[if supportFields]><span
60+
lang=EN-US style='font-family:"Calibri",sans-serif'><span style='mso-element:
61+
field-begin'></span>PAGE<span style='mso-spacerun:yes'>   </span>\* MERGEFORMAT<span
62+
style='mso-element:field-separator'></span></span><![endif]--><span
63+
style='font-family:"Calibri",sans-serif;mso-ansi-language:DE;mso-no-proof:yes'>6</span><!--[if supportFields]><span
64+
lang=EN-US style='font-family:"Calibri",sans-serif'><span style='mso-element:
65+
field-end'></span></span><![endif]--><span lang=EN-US style='font-family:"Calibri",sans-serif'><o:p></o:p></span></p>
66+
67+
<p class=MsoFooter><span lang=EN-US><o:p>&nbsp;</o:p></span></p>
68+
69+
</div>
70+
71+
</body>
72+
73+
</html>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<b:Sources SelectedStyle="\APASixthEditionOfficeOnline.xsl" StyleName="APA" Version="6" xmlns:b="http://schemas.openxmlformats.org/officeDocument/2006/bibliography" xmlns="http://schemas.openxmlformats.org/officeDocument/2006/bibliography"></b:Sources>

0 commit comments

Comments
 (0)