OpenLLM-France/wikimedia huggingface dataset:
# C Programming/stdio.h/fgetc

The fgetc function in the C standard library stdio.h is used to read a character from a file stream.
    int fgetc(FILE *stream)
Where FILE *stream is an initialised pointer to a file.
If successful, fgetc returns a character from the file at its current position. If unsuccessful, fgetc returns an error code. For text files (as opposed to binary files), the characters with values 25 and 26 (the substitute character and the escape character) may render the input stream inoperable afterward, instead returning a single maximal value.
Error codes:
    -1: Bad argument: not integer
    -2: Bad argument: out of range
    -3: File was not open

## References

* More in depth description of fgetc
# C Programming/stdio.h/fgetpos

fgetpos is a function in the I/O section of the C standard library.

## Usage

    int fgetpos(FILE *stream, fpos_t *pos);
fgetpos will retrieve the file offset (in bytes) from stdio stream stream into storage of type fpos t pointed to by variable pos, which should be allocated by the caller. This variable should only be used for subsequent calls to fsetpos. A separate function, ftell can be used instead in order to retrieve the value of the file offset as a long integer.
The return value is 0 on successful completion, or -1 on error (in which case errno is set accordingly).
# C++ Programming/About the Book/Authors
## Copyright Notice
### Authors

The following people are authors to this book:
    Panic, Thenub314
You can verify who has contributed to this book by examining the history logs at Wikibooks (http://en.wikibooks.org/).
Acknowledgment is given for using some contents from other works like Wikipedia, the wikibooks Java Programming and C Programming and the C++ Reference, as from the authors Scott Wheeler, Stephen Ferg and Ivor Horton.
# C++ Programming/Booklinks
## Other (dead tree) books on C++
### Introductory books

* Thinking in C++, 2nd ed. Volume 1: Introduction to Standard C++ by Bruce Eckel, ISBN 0139798099 | ISBN 978-0139798092. Available online and also as free downloadPDF.

### Advanced topics

* Thinking in C++, 2nd ed. Volume 2: Practical Programming by Bruce Eckel, 0139798099 | ISBN 978-0139798092. Available online as free downloadPDF.
* Effective C++ : 55 Specific Ways to Improve Your Programs and Designs, 3rd ed. by Scott Meyers, ISBN 0321334876

### Reference books

* C++ in a Nutshell by Ray Lischner, ISBN 059600298X
* C++ Pocket Reference by Kyle Loudon, ISBN 0596004966
* C++ FAQs by Marshall Cline, Greg Lomow, and Mike Girou, Addison-Wesley, 1999, ISBN 0-201-30983-1
# C++ Programming/About the Book/Foreword
## Foreword

This book covers the C++ programming language, its interactions with software design and real life use of the language. It is presented as an introductory to advance course but can be used as a reference book.
If you are familiar with programming in other languages you may just skim the Getting Started Chapter. You should not skip the Programming Paradigms Section, because C++ does have some particulars that should be useful even if you already know another Object Oriented Programming language.
The Language Comparisons Section provides comparisons for some language(s) you may already know, which may be useful for veteran programmers.
If this is your first contact with programming then read the book from the beginning. Bear in mind that the Programming Paradigms section can be hard to digest if you lack some experience. Do not despair, the relevant points will be extended as other concepts are introduced. That section is provided so to give you a mental framework, not only to understand C++, but to let you easily adapt to (and from) other languages that may share concepts.

## Guide to readers

This book is a Wikibook (en.wikibooks.org), an up-to-date copy of the work is hosted there.
It is organized into different parts, but as this is a work that is always evolving, things may be missing or just not where they should be, you are free to become a writer and contribute to fix things up...

## Reader comments

If you have comments about the technical accuracy, content, or organization of this document, please tell us (e.g. by using the "discussion" pages or by email). Be sure to include the section/title of the document with your comments and the date of your copy of the book. If you are really convinced of your point, information or correction then become a writer (at Wikibooks) and do it, it can always be rolled back if someone disagrees.

## Guide to writers

Authors/Contributors should register if intending to make non-anonymous contributions to the book (this will give more value and relevance to your opinions and views on the evolution of the work and enable others to talk to you). Be bold and try to follow the structure. If you have major ideas or big changes use the discussion area; as a rule just go with the flow.

### Conventions

    A set of conventions have been adopted for the construction of this book, please read about them before you contribute any content.
# C++ Language/Variables/UniformInitialization

There are three different syntax that you could use for initializing a variable: traditional "implicit initialization" (int iVar = 11;), traditional "explicit initialization" (int iVar(11);), and modern "uniform initialization" (int iVar {11};).
Additional information about uniform initialization (includes interactive examples)
# About the book
## Foreword

This book covers the C++ programming language, its interactions with software design and real life use of the language. It is presented as an introductory to advance course but can be used as a reference book.
If you are familiar with programming in other languages you may just skim the Getting Started Chapter. You should not skip the Programming Paradigms Section, because C++ does have some particulars that should be useful even if you already know another Object Oriented Programming language.
The Language Comparisons Section provides comparisons for some language(s) you may already know, which may be useful for veteran programmers.
If this is your first contact with programming then read the book from the beginning. Bear in mind that the Programming Paradigms section can be hard to digest if you lack some experience. Do not despair, the relevant points will be extended as other concepts are introduced. That section is provided so to give you a mental framework, not only to understand C++, but to let you easily adapt to (and from) other languages that may share concepts.

## Guide to readers

This book is a Wikibook (en.wikibooks.org), an up-to-date copy of the work is hosted there.
It is organized into different parts, but as this is a work that is always evolving, things may be missing or just not where they should be, you are free to become a writer and contribute to fix things up...

## Reader comments

If you have comments about the technical accuracy, content, or organization of this document, please tell us (e.g. by using the "discussion" pages or by email). Be sure to include the section/title of the document with your comments and the date of your copy of the book. If you are really convinced of your point, information or correction then become a writer (at Wikibooks) and do it, it can always be rolled back if someone disagrees.

## Guide to writers

Authors/Contributors should register if intending to make non-anonymous contributions to the book (this will give more value and relevance to your opinions and views on the evolution of the work and enable others to talk to you). Be bold and try to follow the structure. If you have major ideas or big changes use the discussion area; as a rule just go with the flow.

### Conventions

    A set of conventions have been adopted for the construction of this book, please read about them before you contribute any content.

## Copyright Notice
### Authors

The following people are authors to this book:
    Panic, Thenub314
You can verify who has contributed to this book by examining the history logs at Wikibooks (http://en.wikibooks.org/).
Acknowledgment is given for using some contents from other works like Wikipedia, the wikibooks Java Programming and C Programming and the C++ Reference, as from the authors Scott Wheeler, Stephen Ferg and Ivor Horton.
# Advanced Structural Analysis/Part I - Theory/Failure Modes/Plastic Failure/Yield Criterion

* Introduction
* Hydrostatic Pressure Independent Materials
* Hydrostatic Pressure Dependent Materials
# Advanced Structural Analysis/Part I - Theory/Failure Modes/Plastic Failure/Special Members

* Introduction
* Welds
* Bolts
* Rivets
# Advanced Structural Analysis/Part I - Theory/Failure Modes/Plastic Failure/Special Members/Welds

* Introduction
* Fillet Welds
* Butt Welds
* Spot Welds
# Advanced Structural Analysis/Part I - Theory/Failure Modes/Fatigue/Special Members

* Introduction
* Welded Joints
* Bolted Joints
# Advanced Structural Analysis/Part I - Theory/Failure Modes/Plastic Failure

* Introduction
* Yield Criterion
* Limit Analysis
* Special Members
# Advanced Structural Analysis/Part I - Theory/Failure Modes/Plastic Failure/Yield Criterion/Hydrostatic Pressure Independent Materials

* Introduction
* The Tresca Yield Criterion
* The von Mises Yield Criterion
# Advanced Structural Analysis/Part I - Theory/Failure Modes/Plastic Failure/Limit Analysis

* Introduction
* Lower Bound
* Upper Bound

# Introduction

Plastic failure modes, even of simple structures, are usually difficult to analyze in a precise quantitative manner. Sophisticated FEM algorithms and significant CPU-times are often necessary in order to produce realistic results.
Limit analysis offers a different, simplistic approach. It is based on a few assumptions and enables the analyst to achieve intrinsic lower and upper bound assessments of the catastrophic loads.
# Advanced Structural Analysis/Part I - Theory/Failure Modes/Plastic Failure/Special Members/Welds/Fillet Welds
## Nomenclature

$f_{uc}=$ characteristic ultimate stress of parent material
$f_{euc}=$ characteristic ultimate stress of electrode material
$f_{wd}=$ dimensioning ultimate stress of joint
$\gamma _{n}=$ application partial coefficient
$\phi =$ reduction factor that corresponds to the weld class
$F_{\alpha }=$ transverse load
$F_{||}=$ longitudinal load
$A=$ surface area of investigated cross section
$\alpha =$ angle between transverse load and the investigated cross section

## Summary of Formulas

$F_{R||}=0.6Af_{wd}$
$F_{R\alpha }=A{\frac {f_{wd}}{\sqrt {2+cos(2\alpha )}}}$
Where:
$f_{wd}=\phi {\frac {\sqrt {f_{uc}f_{euc}}}{1.2\gamma _{n}}}$ ;if $f_{uc}<f_{euc}$ or,
$f_{wd}=\phi {\frac {f_{euc}}{1.2\gamma _{n}}}$ ;if $f_{uc}>=f_{euc}$
Interaction formula:
$({\frac {F_{S||}}{F_{R||}}})^{2}+({\frac {F_{S\alpha }}{F_{R\alpha }}})^{2}<=1$

## Partial Coefficients

$\phi =0.9$ in most cases. $\phi =1$ is acceptable for high quality butt welds.
$\gamma _{n}=1.0,1.1$ or $1.2$ depending on whether failure repercussions are regarded as mild, severe or very severe.
# Advanced Structural Analysis/Part I - Theory/Failure Modes/Fatigue/Elementary Definitions
## Stress Cycle

The image below depicts a simple example of cyclic stress. Here, one interval has been highlighted (dotted) to illustrate a full stress cycle.
The characteristics of a stress cycle are often defined in terms of its stress amplitude, max and min values, mean value and stress ratio. Sometimes additional/other parameters are used to define more subtle qualities of non-sinusoidal stress progressions. The basic properties of a stress cycle are defined below.

## Max and Min Stress of Stress Cycle

The maximum value of one stress cycle is denoted by $\sigma _{fmax}$.
The minimum value of one stress cycle is denoted by $\sigma _{fmin}$.

## Stress Range

The stress range, $\Delta \sigma$, is defined as
$\Delta \sigma =\sigma _{fmax}-\sigma _{fmin}$

## Stress Amplitude

The stress amplitude, $\sigma _{a}$, is defined as
$\sigma _{a}={\frac {\Delta \sigma }{2}}={\frac {\sigma _{fmax}-\sigma _{fmin}}{2}}$

## Mean Stress

The mean stress, $\sigma _{m}$, is defined as
$\sigma _{m}={\frac {\sigma _{fmax}+\sigma _{fmin}}{2}}$

## Stress Ratio

The stress ratio, $R$, is defined as
$R={\frac {\sigma _{fmin}}{\sigma _{fmax}}}$

## Fatigue Life

The fatigue life, $N_{f}$, is defined as the number of stress cycles, of uniform characteristics, that a specimen can endure before fatigue failure. The definition of fatigue failure varies, but it may refer to the transition from the initiation period to the crack growth period.

## Fatigue Limit

There have been strong indications that a stress amplitude threshold, $\sigma _{f}$, exist such that $N=\infty$ when $\sigma _{a}<\sigma _{f}$. This streess amplitude, $\sigma _{f}$, is referred to as the fatigue limit. It has been found however, that the fatigue limit may not exist in an absolute sense and that it can be greatly influenced by the mean stress and environmental factors.

## Nominal Stress

"A stress in the parent material or in a weld adjacent to a potential crack location calculated in accordance with elastic theory excluding all stress concentration effects". -the definition of nominal stress according to EN 1993-1-9.
Note that the nominal stress may correspond to different measures of stress, such as: normal stress, shear stress and equivalent stress.
# Algebra/Chapter 10/Binomial Theorem

10.3: The Binomial Theorem

## Factorials

The notation ' $n!$ ' is defined as n factorial.
    $n!=n\times (n-1)\times (n-2)\times (n-3)\times \dots \times 3\times 2\times 1$
0 factorial is equal to 1.
    $0!=1$
Proof of 0 factorial = 1
    $n!=n\times (n-1)!$
    When n = 1,
    $1!=1\times (1-1)!$
    $1=1\times 0!$
    And thus,
    $0!=1$

## The Binomial Theorem

The binomial thereom gives the coefficients of the polynomial
    $(x+y)^{n}$ .
We may consider without loss of generality the polynomial, of order n, of a single variable z. Assuming $x\neq 0$ set z = y / x
    $(x+y)^{n}=x^{n}(1+z)^{n}$ .
The expansion coefficients of $(1+z)^{n}$ are known as the binomial coefficients, and are denoted
    $(1+z)^{n}=\sum _{k=0}^{n}{n \choose k}z^{k}$ .
Noting that
    $(x+y)^{n}=\sum _{k=0}^{n}{n \choose k}x^{n-k}y^{k}$
is symmetric in x and y, the identity
    ${n \choose n-k}={n \choose k}$
may be shown by replacing k by n - k and reversing the order of summation.
A recursive relationship between the ${n \choose k}$ may be established by considering
    $(1+z)^{n+1}=(1+z)(1+z)^{n}=\sum _{k=0}^{n+1}{n+1 \choose k}z^{k}=(1+z)\sum _{k=0}^{n}{n \choose k}z^{k}$
or
    $\sum _{k=0}^{n+1}{n+1 \choose k}z^{k}=\sum _{k=0}^{n}{n \choose k}z^{k}+\sum _{k=0}^{n}{n \choose k}z^{k+1}=\sum _{k=0}^{n}{n \choose k}z^{k}+\sum _{k=1}^{n+1}{n \choose k-1}z^{k}$ .
Since this must hold for all values of z, the coefficients of $z^{k}$ on both sides of the equation must be equal
    ${n+1 \choose k}={n \choose k}+{n \choose k-1}$
for k ranging from 1 through n, and
    ${n+1 \choose n+1}={n \choose n}={\frac {n!}{(n-n)!n!}}={\frac {n!}{n!}}=1$
    ${n+1 \choose 0}={n \choose 0}={\frac {n!}{(n-0)!0!}}={\frac {n!}{n!}}=1$ .
Pascal's Triangle is a schematic representation of the above recursion relation ...
Show
    ${n \choose k}={\frac {n!}{k!(n-k)!}}$
(proof by induction on n).
A useful identity results by setting $z=1$
    $\sum _{k=0}^{n}{n \choose k}=2^{n}$ .

## The visual way to do the binomial theorem

(this section is from difference triangles)
Lets look at the results for (x+1)$^n$ where n ranges from 0 to 3.
This new triangle is Pascal’s Triangle.
It follows a counting method different from difference triangles.
It would take a lot of adding if we were to use the difference triangles in the X-gon to compute (x+1)$^{10}$. However, using the Pascal’s Triangle which we have derived from it, the task becomes much simpler. Let’s expand Pascal’s Triangle.
The final line of the triangle tells us that
(x+1)$^{10}$ = 1x$^{10}$ + 10x$^9$ + 45x$^8$ + 120x$^7$ + 210x$^6$ + 252x$^5$ + 210x$^4$ + 120x$^3$ + 45x$^2$ + 10x$^1$ + 1x$^0$.

## Practice Problems

Problem 2: If 3! * 5! * 7! = n!, what is n?
# Algebra/Chapter 14/The Unit Circle

| ------------------------ | Algebra Chapter 14: Trigonometry Section 2: The Unit Circle | Operations of Arithmetic |
14.2: The Unit Circle
# Classical Sicilian Richter Rauzer variation
## Theory table

1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 d6 6. Bg5 e6 7. Qd2 a6
| | 8 | 9 |
| Richter-Rauzer main line | O-O-O Bd7 | ? ? | += |
When contributing to this Wikibook, please follow the Conventions for organization.

## References

* Kasparov, Garry, & Keene, Raymond 1989 Batsford chess openings 2. ISBN 0-8050-3409-9.
* This Chess related article is a stub. Please assist Wikibooks by expanding it.
# Sveshnikov Sicilian

Moves:1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5
The White knight's threat of check on d6 is a bit awkward: ...Ke7 would be unpleasant so Black would have to surrender his bishop with ...Bxd6, only to have a queen arrive on d6 and single-handedly cramp the whole Black position. She would need to go, too: ...Qe7 Qxe7 Kxe7/Nxe7, and suddenly Black's dodgy d-pawn and slow development are significant factors in the much simplified position. Far better to keep the knight out of d6 for now and then vanquish it to a3 in a move's time with 6...d6.

## Theory table

1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5
| | 6 |
| Main Line | Ndb5 d6 | += |
| | ... h6 | += |
| | ... Bb4 | += |
When contributing to this Wikibook, please follow the Conventions for organization.

## References

* Kasparov, Garry, & Keene, Raymond 1989 Batsford chess openings 2. ISBN 0-8050-3409-9.
# Chess Opening Theory/1. e4/1...c5/2. Nf3/2...Nc6/3. d4/3...cxd4/4. Nxd4/4...d5

This line usually lets White sit on a favorable endgame after 5. Bb5! without knowing much of the more complicated 5. exd5 Qxd5 6. Be3!? where White may try to gain an advantage gaining time on the queen.
When contributing to this Wikibook, please follow the Conventions for organization.
# Löwenthal Variation

The logic behind the move e5 is that Black, instead of delaying e5, hopes to resolve the issue of pawn structure early on. White has to move the d4 Knight; the test to Black's plan is the Nb5 line, putting pressure on the d6 square.

## Theory table

1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 e5
| 5 | 6 | 7 |
| Nb5 d6 | N1c3 Nf6 | Bg5 a6 | += |
| Nxc6 bxc6 | Nc3 Nf6 | Bc4 Bb4 | = |
| Nb3 Nf6 | Bg5 h6 | | = |
When contributing to this Wikibook, please follow the Conventions for organization.

## References

* Kasparov, Garry, & Keene, Raymond 1989 Batsford chess openings 2. ISBN 0-8050-3409-9.
* This Chess related article is a stub. Please assist Wikibooks by expanding it.
# Sveshnikov Sicilian

Moves:1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7. Bg5
Pinning the knight on f6 is whites main continuation in this line. This increases the pressure on d5 by taking one of the defenders out and also protects the e4 pawn, which is very important if the knight on c3 gets driven away by blacks b-pawn.

## Theory table

1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6
| 7 | 8 | 9 | 10 | 11 |
| Bg5 a6 | Na3 b5 | Bxf6 gxf6 | Nd5 f5 | Bd3 Be6 | += |
When contributing to this Wikibook, please follow the Conventions for organization.

## References

* Kasparov, Garry, & Keene, Raymond 1989 Batsford chess openings 2. ISBN 0-8050-3409-9.
# Kalashnikov Variation

Nb5 threatens Nd6+, where after trades the queen will be in a good position. This is why Black often plays 5...d6, where Black defends d6 with the bishop and the queen. The knight is, however, quite exposed, and is often kicked with a6, and as the b1 knight comes to c3 later on, Black threatens a fork of the knights with b5, and as when the c3 knight comes to the safe square d5 the e4 pawn is hanging, Bg5 is often played as well to pin the knight, and the bishop is sometimes traded.

## Theory table

For explanation of theory tables, see theory table and for notation, see algebraic notation.
1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 e5 5. Nb5
| | 5 | 6 | 7 | |
| Pelikán and Sveshnikov Variations | ... d6 | N1c3 Nf6 | Bg5 a6 | = |
| Löwenthal Variation | ... a6 | Nd6+ Bxd6 | Qxd6 Qf6 | = |
When contributing to this Wikibook, please follow the Conventions for organization.
# Classical Sicilian Richter Rauzer variation
## Theory table

1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 d6 6. Bg5 e6 7. Qd2 a6 8. O-O-O
| | 8 | 9 |
| Richter-Rauzer main line | Bd7 | ? ? | += |
When contributing to this Wikibook, please follow the Conventions for organization.

## References

* Kasparov, Garry, & Keene, Raymond 1989 Batsford chess openings 2. ISBN 0-8050-3409-9.
* This Chess related article is a stub. Please assist Wikibooks by expanding it.
# Sveshnikov Sicilian

Moves: 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5
The variation is named after the Latvian Grandmaster Evgeny Sveshnikov. In the various Najdorf lines where Black plays e5, he gets his desired pawn structure at the cost of leaving his king's bishop stuck behind a pawn on d6. Right now, Black is trying to have his cake and eat it by delaying d6 until the bishop has fled to b4. The standard Najdorf was good enough to be played religiously by Garry Kasparov; White must cut out the threat of ...Bb4 or be faced with an improved Najdorf.
The move that does more or less force ...d6 is Ndb5. The knight threatens to invade the d6 outpost with check. Note that this forks Black's king and c8-bishop, but Black can deal with this easily with 7...Bxd6
Nde2 is the only significant sideline, fortifying the c3 knight to avoid the wrecking of the queenside pawns that would occur after ...Bb4 and ...Bxc3 bxc3. Neither Nb3 nor Nf3 offer anything in particular to compensate for letting the bishop out, Nf5 places the knight on a shaky square that can be instantly exploited with 6...d5! and Nxc6 bxc6 hands control of d5 back to Black.

## Theory table

1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5
| | 6 | 7 | 8 | 9 |
| Main Line | Ndb5 d6 | Bg5 a6 | Na3 b5 | Bxf6 gxf6 | += |
| | Nf5 d5 | exd5 Bxf5 | dxc6 bxc6 | Qf3 Qd7 | = |
| Morozevich Variation | Nde2 Bc5 | Ng3 d6 | | | = |
| | Nb3 Bb4 | Bd3 d5 | | | = |
| | Nf3 Bb4 | Bc4 O-O | | | = |
When contributing to this Wikibook, please follow the Conventions for organization.

## References

* Kasparov, Garry, & Keene, Raymond 1989 Batsford chess openings 2. ISBN 0-8050-3409-9.
# Sveshnikov Sicilian

Moves:1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6
A little fact that is often forgotten by Sveshnikov players: the d5 square is genuinely weak and likely to remain so. Black's activity doesn't come easy but as compensation for taking on that weakness - an important distinction. White therefore has a logical mini-plan: occupy d5, preferably with a knight, preferably one that can't be instantly captured.
The immediate Nd5 has its followers, as the e-pawn is clearly immune from capture due to Nbc7+. This line was chosen four times by Fabiano Caruana in the World Chess Championship 2018 match against Magnus Carlsen. After Black plays 7...Nxd5, the nice outpost vanishes after 8.exd5 (8.Qxd5 a6 9. Nc3 Be6 is miserable - capturing on d5 with the queen is usually a sign that something's gone wrong). One plan for black is to play 8...Nb8 with ...Nd7 and ...f5 to follow. In their match, Carlsen also tried 8...Ne7 9.c4 Ng6.
White more often pins down the f6 knight with Bg5 - it's important to see this move as a means of increasing control of d5, rather than just pinning a knight out of boredom.

## Theory table

1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6
| 7 | 8 | 9 | 10 | 11 |
| Bg5 a6 | Na3 b5 | Bxf6 gxf6 | Nd5 f5 | Bd3 Be6 | += |
| Nd5 Nxd5 | exd5 Nb8! | c4 a6 | Nc3 Bf5 | | = |
| a4 a6 | Na3 Be7 | Be3 Be6 | | | = |
When contributing to this Wikibook, please follow the Conventions for organization.

## References

* Kasparov, Garry, & Keene, Raymond 1989 Batsford chess openings 2. ISBN 0-8050-3409-9.