OpenLLM-France/wikimedia huggingface dataset:
# GLPK/Callback functions

This page describes the utilization of callback functions.

## Lazy constraints

The callback function is called with GLP_IROWGEN when the current relaxed subproblem has been solved to optimality. Now lazy constraints can be added using library functions glp_add_rows,glp_set_row_name, glp_set_row_bnds, and glp_set_mat_row.
As of GLPK 4.60 the following bug exists: An optimal solution may be found by the rounding heuristic which does not result in a callback with GLP_IROWGEN. As a workaround set iocp->sr_round = GLP_OFF to switch of the rounding heuristic.
# GLPK/Compiling GLPK

Many users prefer to compile GLPK from scratch — although pre-compiled binaries are often available for Windows systems, for Debian and Red Hat-based Linux distros, and perhaps for other platforms. The advantages of manual compilation are listed shortly.
GLPK provides makefiles and batch files for a range of platforms and is known for its straightforward builds — given that your development environment was set up properly.

## Manual compilation

The two reasons for having GLPK present are to gain access to:
* GLPSOL — the command-line MathProg model interpreter and solver
* libglpk — the callable solver library that you link to your application program.
A manual build allows you:
* to run the latest code, containing new features and bugfixes
* to customize your build, for instance, to provide support for arbitrary-precision arithmetic
* to be less dependent on package maintainers
* to modify the GLPK codebase.
Reasons to modify the codebase range from runtime reporting tweaks through to experimentation with the mixed-integer solution strategy.
You will need to decide which kind of library to build:
* a static library — with compile-time linking
* a shared library — with runtime linking.
The characteristics of each are discussed at Wikipedia.
If you intend to use GLPSOL, then a shared library is usually preferable. If you plan to link to a custom application you are writing, then a static library means that you need not distribute a copy of libglpk with your application.
If you wish to use non-default features in GLPSOL (such as arbitrary-precision arithmetic), then you will need to hand build GLPK with the appropriate configuration options (--with-gmp) and the correct third-party libraries present (libgmp).

## Specific operating systems

There are dedicated pages for compiling GLPK on:
* Windows
* Mac OS X
* Linux
* Solaris
# GLPK/Conditional Constraints
## Constraints depending on a parameter

Sometimes constraints shall only be active if a condition is met which can be expressed by a parameter.
The following is not legal GMPL:
But we can model it in GMPL as follows:
We can do the same for indexed conditions:

## Constraints depending on a binary variable

If the relevance of constraints shall depend on a binary variable, we can use a BigM approach:
# GLPK/Compiling with the GLPK library

This page shows how to create trivial programs which link to the GLPK library. The intention is to show users how to get started with the GLPK API.

## Compiling with GCC

The following example shows how to compile a minimal C language program using the GLPK library and the GNU GCC compiler. The program outputs the GLPK version number.
On Linux or Mac OS X, open a console and create the source file test.c by typing (or use a text editor if you prefer):
Compile and link this program with the following command:
Then execute the application using:

## Compiling with Visual Studio C++

The following example shows how to compile a minimal C language program using the GLPK library and Microsoft Visual Studio C++ 2008 (the C code and the necessary setup steps also work with Visual Studio C++ 2010). The program outputs the GLPK version number.
Create a new project of type "Win32 Console Application" with the name TESTGLPK. Then edit source file TESTGLPK.cpp:
Then edit the properties of project TESTGLPK:
* in Configuration Properties — C/C++: set "Additional Include Directories" to the path with glpk.h, perhaps: "C:\Program Files\glpk\glpk-4.45\include"
* in Configuration Properties — Linker — Input: set "Additional Dependencies" to the GLPK library, perhaps: "C:\Program Files\glpk\glpk-4.45\w32\glpk_4_45.lib"
The GLPK DLL (e.g. glpk_4_47.dll) has to be in a spot where MS Windows will find it upon execution of the TESTGLPK application. Suitable places include the directory where the TESTGLPK executable is located in, or the Windows system directory. For some screenshots, see Trapp (2009).

## Compiling with Qt

Qt is a cross platform application and UI framework. Qt is published under a LGPL license.
The following example shows how to compile a minimal Qt program which uses the GLPK library. The program outputs the GLPK version number.
Open QT Creator and create a new QT console application with the project name qtglpk. Then add the following lines (assuming GLPK version 4.45) to the project file qtglpk.pro:
You may need to adjust the paths and the library name to suit your installation.
Then change the text of main.cpp to:
Finally, press CTRL + R to build and run the application.

## References

* ↑ Microsoft (June 16, 2003). "Development Impacts of Security Changes in Windows Server 2003". Retrieved 31 December 2011.
* ↑ Andy Trapp (November 2, 2009). "IE 2082: Introduction to GLPK" (PDF). Retrieved 28 December 2010.
# GLPK/Android app
## GLPK on Android

GLPK on Android is an app for the Android operating system. It allows to solve linear problems in CPLEX file format interactively. It uses a JNI wrapper generated with SWIG to call the GLPK native library from Java.
The app available at https://play.google.com/store/apps/details?id=com.littlepancake.glpk. The source code is hosted at https://github.com/alotau/GLPKAndroid/tree/master.
# GLPK/C++

The programming languages C and C++ do not need dedicated GLPK language bindings. GLPK is programmed natively in C. And C++ can normally link without problem to C code. Moreover, there is no need to use the following C linkage construct extern "C" when calling GLPK from C++:
Instead simply use:
# GLPK/C-Sharp

C# is a programming language, designed by Microsoft, and described by some as similar to Java. An open source implementation of C# is provided by the Mono project.
C# has been standardized under the following documents:
* ECMA-334 — C# Language Specification
* ISO/IEC 23270:2006 — Information technology – Programming languages – C#.

## GLPK for C#/CLI

GLPK for C#/CLI provides a C# and common language interface (CLI) binding for GLPK. It is licensed under GPL V3. The coding is generated using SWIG.
GLPK for C#/CLI supports callback and terminal listeners. Errors occurring in the GLPK native library are thrown as C# exceptions. All functions of the GLPK API are available as methods of the GLPK object as shown in the example below:

## Marshalling

C# can call C library functions directly using marshalling. The following program invokes glp_version to output the version of the GLPK library.
To compile the program with Mono use
To compile the program with Visual C# use

### Visual Studio

When GLPK is compiled with Visual Studio C++, both .dll and .lib files are created. The easiest (usual) way to the use GLPK in a Visual Studio C# project in this case is to make the C++ GLPK project a dependency for the C# project and include the .lib file.

## GLPK#

GLPK# (GLPK Sharp) provides a C# language binding for GLPK and is licensed under CeCILL version 2.
GLPK# is written in C++/CLI and would normally be statically linked to GLPK. As at July 2012, GLPK# supports most of the GLPK 4.45 API, including terminal callbacks and branch-and-cut callbacks. See the dual French/English project website for details.

## References

* ↑ Dormann, Scott (2007). "The history of C#". {{cite journal}}: Cite journal requires |journal= (help)
# Semi-Classical Variation
### 4. Be2

This is a move that can either lead to a transpositon to the Classical Variation with 4... Bg7 5. Nf3 or the aggressive 4... Bg7 5. g4 (Chinese Variation) and 4... Bg7 5. h4 (Bayonet Attack)
When contributing to this Wikibook, please follow the Conventions for organization.
# Austrian Attack
### 4...Bg7

This is Black's normal continuation. Black continues to aim his pieces at the growing White center. White's center poses a growing threat to Black's position. The advance of the e-pawn for White would snuff out the bishop's activity, so Black must find some way to prevent e5. He is safe for now for tactical reasons, but preparation by White will force Black to take preventive measures.

## Theory table

1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7
| | 4 |
| Main Line | 5. Nf3 ... | = |
When contributing to this Wikibook, please follow the Conventions for organization.
# Austrian Attack:Dragon
### 6.dxc5

White chooses the simplest option, taking the pawn. Black's next move wins back a pawn and achieves a better pawn structure. The other option for White would be to ignore Black's threats and lose the pawn, in addition to getting an inferior position.

## Theory table

1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 c5 6.dxc5
| | 4 |
| Main Line | ... 6...Qa5 | = |
| | ... 6...dxc5 | += |
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.
# Pirc Defence
### 3...g6

Black continues with his hypermodern plan of fianchettoing the bishop to pressure White's center, followed by castling kingside. The bishop creates a masked attack on d4, and also helps to control the center. White still has yet to make a decision about his center, and he will do so with his next move. Here White has a number of viable options; 4.f4, the aggressive Austrian Attack, further increases White's central control, preparing e5, while also supporting a kingside attack. The calm 4.Nf3, known as the Classical Variation, simply develops solidly with a central space advantage for White. 4.Be3 is a flexible & aggressive move that tends to aim for Qd2, O-O-O and a kingside pawn-storm (often known as the 150 Attack). White has many other options, such as 4.Be2 (sometimes played with the intention of 4...Bg7 5.g4, the aggressive Chinese Variation or 4...Bg7 5.h4, the Bayonet Attack), 4.Bf4, 4.h3 (an awkward-looking move that can turn aggressive), 4.f3 (often transposing to 4.Be3, with the same plan of Be3, Qd2, O-O-O), and others.

## Theory table

1.e4 d6 2.d4 Nf6 3.Nc3 g6
| | 4 |
| Austrian Attack | ... 4. f4 | = |
| Classical Variation | ... 4. Nf3 | = |
| | ... 4. Bc4 | = |
| | ... 4. Bg5 | = |
| | ... 4. Be3 | = |
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.
# Austrian Attack
### 5. Nf3

White supports e5 with his knight and threatens in earnest to advance his central pawns. Black has two choices. One is entirely defensive, but takes away from much of the force of the attack. The other, seen much more frequently than the former, is the choice of the world's top Pirc players.

## Theory table

    1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3
| | 4 |
| | ... 5...c5 | = |
| Main Line | ... 5...0-0 | = |
When contributing to this Wikibook, please follow the Conventions for organization.
# Austrian Attack:Dragon
### 6...Qa5!

With this move Black regains the pawn. Here are some sample variations:
          7.cxd6 Nxe4 8.Bd2 (8.dxe7 Nxc3) Nxd6, with a better position for Black.
          7.Bd3 Qxc5, when white is slighty better, because white can play 8.Qe2 with the idea of 9.Be3 and white also have more space.

## In other positions

This is not the only position in which this tactic will appear. There are many other variations which involve this equalization trick for Black. For example, consider the moves 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Be2 Bg7 5.h4 c5! After White's forced 6.dxc5 (6.Nf3 Qa5!) Qa5! 7.Bd3 Qxc5, again with a much better pawn structure. Black can get this dominant, healthy pawn structure in many Pirc variations. Certainly the Black pawns are better than the White pawns. Black has strong pressure on White's e-pawn. Meanwhile, White has weakened his kingside with his now-useless move 5.h4. The point of this move was to play 6.h5, creating a weakness in the Black kingside, but now the g3 and g4 squares are weakened, and it is White's position that gets the weakness.
Dragon pawn structure :
a
b
c
d
e
f
g
h
88
77
66
55
44
33
22
11
a
b
c
d
e
f
g
h :
Position in Forsyth-Edwards Notation (FEN)
rnb1k2r/pp2ppbp/3p1np1/q1P5/4P2P/2N5/PPP1BPP1/R1BQK1NR w :
Moves: 1. e4 d6 2. d4 Nf6 3. Nc3 g6 4. f4 Bg7 5. Nf3 c5 6. dxc5 Qa5 :
Another position where Black gets the Dragon structure. :
When contributing to this Wikibook, please follow the Conventions for organization.
# Austrian Attack
### 4.f4

This is White's most aggressive variation against the Pirc Defense. White gets in an immediate threat, albeit a not-so-dangerous one, of e5. Black's plan here is usually to develop normally, as there really is no good way of preventing e5. As e5 is not so dangerous anyway, Black usually continues development.

## Theory table

    1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4
| | 4 |
| Main Line | ... 4...Bg7 | = |
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.
# Austrian Attack: Dragon
### 5...c5

Black strikes at the center before White can make a move with it. His move may seem antipositional, as after 6.dxc5 dxc5 7.Qxd8+ Kxd8 8.Be3 b6 9.0-0-0+ Bd7 gives White an excellent game, due to Black's uncastled king and poor pawn position. However, Black can get a favorable pawn structure by using a tactical trick. The reason for the variation's nickname is for the excellent pawn structure that Black can get out of it, the Sicilian Dragon.

## Theory table

    1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 c5
| 4 |
| 6. Bb5+ | = |
| 6. dxc5 | = |
| 6. d5 | = |
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.
# Austrian Attack

5...O-O is seen much more often than 5...c5. Now the black king has escaped the centre, so there is no major threat if White plays 6.e5 immediately.
White will likely play 6.e5, Be3, Be2 or Bd3 (the main line) later. His desire is to develop the minor piece, control the c8-h3 diagonal (with h3), and eventually push e5, getting more space.
Black may answer with 6...Na6!?. Although this move put his knight on the rim, it prepares for ...c5, create counter play on queenside. Other reasonable and more intuitive responses are 6...Nc6 or 6...Bg4, and then ...e5. Black must get either c5 or e5, or he will be in trouble later, due to having nearly no spatial advantage.

## Theory table

For explanation of theory tables, see theory table and for notation, see algebraic notation. .
1. e4 d6 2. d4 Nf6 3. Nc3 g6 4. f4 Bg7 5. Nf3 O-O
| | 6 |
| | e5 |
| | Be3 |
| | Be2 |
| Main Line | Bd3 |
When contributing to this Wikibook, please follow the Conventions for organization.
# Freistil/Zerbröselnde Geldscheine

What's worth learning? :
| der Geldschein, die Banknote | banknote |
| kursieren | (to) circulate |
| der Geldautomat | automated teller machine (ATM) |
| die Ursache | cause |
| nach wie vor | still |
| ausschließen | (to) rule out |
| bislang | so far |
| nach offiziellen Angaben | according to official statements |
| bis zu | up to |
Freistil/Beginner
Seit Juli 2006 kursiert in Deutschland eine ungewöhnliche Form des „Wertverfalls“: Immer wieder tauchen Euro-Banknoten aus Geldautomaten auf, die bei Berührung in ihre Einzelteile zerfallen. Die Ursache dieses rätselhaften Phänomens ist nach wie vor unbekannt. Die Deutsche Bundesbank schließt Herstellungsfehler aus, technische Defekte in den Geldautomaten oder Hinweise auf Sabotage wurden nicht gefunden. Vermutlich kamen die Scheine mit einer ätzenden Substanz in Kontakt, chemische Analysen blieben aber bislang ergebnislos. Eine gesundheitliche Gefährdung besteht nach offiziellen Angaben nicht. Bisher zerbröselten etwa 2.500 Geldscheine im Wert von bis zu 100 € je Schein. Brösel-Scheine können bei der Bundesbank und bei Geschäftsbanken umgetauscht werden, sofern noch mehr als die Hälfte des Scheins intakt ist.
Wikinews: Rätsel um Brösel-Euros weiterhin ungeklärt. 14 Jan. 2007 Wikinews: Brüchige Banknoten: Sabotage nicht auszuschließen. 3 Nov. 2006 License: CC-BY-2.5
Edit this article · Ask a question about this article
In detail: Euro coins and banknotes :
* The Euro, symbol €, was first introduced as a currency on January 1st 1999 and today is the official currency of 27 European countries. There are banknotes valued 5, 10, 20, 50, 100, 200 and 500 €. Each one has a couple of security features such as an holographic imprint, water sign and ink with changing colour, making it very difficult to reproduce them illegally. The crumbling banknotes add to other interesting physical aspects of the currency, such as that the inlay of coins can be broken out by manual force or that the coins with inlays have an unequal distribution of weight and thus are not apt to be tossed in stochastic experiments.
# French/Appendices/List of authors

* French authors
* Hints and common errors
* Pronunciation
* Slang
* Typing characters
* Web resources
Lessons · Vocabulary · Grammar · Appendices · Texts

## Middle ages

* Chrétien de Troyes (around 1135 - around 1183)

## 16th century

* Francois Rabelais (around 1483 or 1494–1553)
* Pierre de Ronsard (1524–1585)
* Louise Labé (a.1526 - a.1565)

## 17th century

* René Descartes (1596–1650)
* Pierre Corneille (1606–1684)
* Jean de La Fontaine (1621–1695)
* Molière (1622–1673)
* Blaise Pascal (1623–1662)
* Charles Perrault (1628–1703)
* Jean Racine (1639–1699)

## 18th century

* Marivaux (1688–1763)
* Montesquieu (1689–1755)
* Voltaire (1694–1778)
* Jean-Jacques Rousseau (1712–1778)
* Denis Diderot (1713–1784)
* Beaumarchais (1732–1799)

## 19th century

* François-René de Chateaubriand (1768–1848)
* Honoré de Balzac (1799–1850)
* Victor Hugo (1802–1885)
* Alexandre Dumas (1802–1870)
* Prosper Mérimée (1803–1870)
* George Sand (1804–1876)
* Alfred de Musset (1810–1857)
* Charles Baudelaire (1821–1867)
* Gustave Flaubert (1821–1880)
* Jules Verne (1828–1905)
* Alphonse Daudet (1840–1897)
* Émile Zola (1840–1902)
* Paul Verlaine (1844–1896)
* Henri Bergson (1859–1941)
* Edmond Rostand (1868–1918)

## 20th century

* Paul Claudel (1868–1955)
* Marcel Proust (1871–1922)
* Guillaume Apollinaire (1880–1918)
* Jean Cocteau (1892–1963)
* Louis-Ferdinand Céline (1894–1961)
* Jean Giono (1895–1970)
* Marcel Pagnol (1895–1974)
* André Breton (1896–1966)
* Jacques Prévert (1900–1977)
* André Malraux (1901–1976)
* Raymond Queneau (1903–1976)
* Jean-Paul Sartre (1905–1980)
* Robert Merle (1908–2004)
* Nicolas Bouvier (1929–1998)
* Georges Perec (1936–1982)
* Antoine Marie Roger de Saint-Exupery (1900–1944)
* Albert Camus (1913–1960)
* Colette (1873–1954)
* Anaïs Nin (1903–1977)
* Simone de Beauvoir (1908–1986)

## Links

List of French authors in the French Wikipedia.
French authors · Hints and common errors · Pronunciation · Slang · Typing characters · Web resources
French :
Lessons · Vocabulary · Grammar · Appendices · Texts
# French/Appendices/Web resources

* French authors
* Hints and common errors
* Pronunciation
* Slang
* Typing characters
* Web resources
Lessons · Vocabulary · Grammar · Appendices · Texts

## Link collections

* Wikipedia French language external links - Dozens of valuable links.

## Travel in France

* France travel guide on Wikivoyage
French authors · Hints and common errors · Pronunciation · Slang · Typing characters · Web resources
French :
Lessons · Vocabulary · Grammar · Appendices · Texts
# French/Cover

The current, editable version of this book is available online in the open-content textbooks collection, at
//en.wikibooks.org/wiki/French

# Attributions and Licenses

This wikibook was written by several Wikibooks contributors.
All images are available on WikiMedia Commons unless stated otherwise.
# French/Appendices

Lessons · Vocabulary · Grammar · Appendices · Texts

## Contents

French authors · Hints and common errors · Pronunciation · Slang · Typing characters · Web resources
# Gambas/Combination
## Combination Assignment Operators

Gambas supports combination assignment operators (also called compound assignment operators ) in a similar manner to the C programming language. The combination assignment operators provide a more concise way of creating expressions by enabling calculations involving a variable to be performed without the variable being included in the right hand operand.
value += 3 ' value = value + 3 value /= 3 ' value = value / 3 value *= 3 ' value = value * 3

### Arithmetic

+= addition -= subtraction
* = multiplication
/= division

### Concatenation

| &= | Concatenation | &\= | Concatenation (adding a path separator between the two strings if necessary)
# Gambas/Concept Index

This is the concept index for the Gambas programming book.

## A

* actions
* anonymous subroutines
* argc
* argv
* arithmetic
* arrays
* ascii
* assignment

## B

* backslash
* bare blocks
* bareword strings
* begin blocks
* bit manipulation
* bitwise operators
* blocks
* boolean truth
* brackets
* branches

## C

* case conversion
* case sensitivity
* case switching
* caveats
* child
* cmp
* combination assignment operators
* comma
* commands
* command line parameters
* comments
* comparative operators
* concatenation
* conditional branches
* conditional loops
* conversion qualifiers
* conversion specifiers
* constants
* constructors
* context
* control statements
* control structures
* conversion
* converting statements into expressions
* crypt

## D

    Data Types
* date functions
* declaration
* decrement
* default variable
* delimiters
* destructors
* doublemint operator
* doublequotes

## E

* empty statement
* empty string
* encryption
* environment
* error_handling
* equivalence
* error handling
* escape sequences
* event handling
* expressions
* external functions

## F

* fields
* field separator
* file handling
    Filehandles
* floating point numbers
* for loops
* foreach loops
* formatting functions
* functions

## G

* given
* goto
* grouping arguments

## H

* hashbang
* hashes
    First Programs
* here_documents

## I

* identifiers
    If conditionals
* inbuilt functions
* infinite loops
* input
* instructions
* internals
    Interpolation
* iterator
* iterative loops
* inverted syntax
* invocation

## K

* keywords

## L

* labels
* libraries
* lists
* literal characters
* local
* locale
* logical operators
    Flow_control
* loops
* loop modifiers
* limitations

## M

* main block
* mathematical functions
* metacharacters
* mistakes
* modules
* multiple branch conditionals

## N

* nested loops
* nudge operators
    Numbers

## O

    Operators

## P

* patterns
* precedence
* print
* printf

## Q

* quotationmarks

## R

* records
* record_separator
* regular expressions

## S

* search_patterns
* special variables
* statements
    Strings
* strings
* symbols

## T

* truth
* typecasting

## V

* values
    Basic Variables
* variable assignment
* variable_names

## W

* while loops
* whitespace
# Gambas/Constants

Back to Gambas

## Predefined Constants in Gambas

Gambas has some predefined constants.
Please read the official wiki! http://gambaswiki.org/wiki/cat/constant
Here is a trick!
* Type gb.!
* After the dot, you will see these constants.
# Gambas/Dialogue

back to Gambas

## Standard Dialogs

They make your coding easier.
In the following example you will use standard dialogues choosing Standarddialoge für die Wahl
* the font
* the colour
* the file name
* the file path
You need 1 textarea and 3 commandbuttons, to get the program going.