OpenLLM-France/wikimedia huggingface dataset:
# Trigonometry/Circles and Triangles/The Fermat Point

The Fermat Point of a triangle ABC is the point F such that AF+BF+CF is minimised.
Pierre Fermat (1601-1665) challenged Evangelista Torricelli (1608-1647) to find this point.
If any of the angles of the triangle is 120º or more, F coincides with the vertex of that angle. Otherwise, F is the point inside ABC such that the angles AFB, BFC, CFA are all 120º.
To locate F (assuming all angles are less than 120º), construct the equilateral triangles BCX, CAY, ABZ all pointing outwards so that they do not overlap with ABC. Then the lines AX, BY, CZ all intersect at F. Also, the circumcircles of these three triangles all pass through F. AX, BY and CZ are of equal length, this being AF+BF+CF.
# Trigonometry/Circles and Triangles/Orthocentric points

As previously noted, the altitudes of any triangle ABC intersect at their orthocentre, H.
The orthocentres of the triangles ABH, BCH, ACH are respectively C, A and B.
The four triangles ABC, ABH, BCH and ACH have the same nine-point circle. The four incircles and twelve excircles all touch this nine-point circle.
All four triangles have the same circumradius.
The reflection of H in any side of ABC lies on the circumcircle of ABC, and the same applies to each of the points A, B and C.
The centroids of the four triangles form a set of four points which is similar to the original set ABCH, but one third the size.
# Trigonometry/Circles and Triangles/The Circumcircle

The circumcircle of a triangle is the unique circle passing through its three vertices.
The centre of the circumcircle is the circumcentre. It is the intersection of the perpendicular bisectors of the three sides. This can be explained as follows:
* Each bisector of a side is the locus of points equidistant from the two endpoints of the side, e.g. all the points on the bisector of ${\overline {AB}}$ are equidistant from point A and point B.
* On the bisector of ${\overline {AB}}$ points are equidistant from A and B. On the bisector of ${\overline {BC}}$ points are equidistant from B and C. The point where these two bisectors cross is both equidistant from A and B and equidistant from B and C. So the intersection point's distance from A is the same as its distance to B is the same as its distance to C. So it is equidistant from A and C and hence lies on the bisector of ${\overline {AC}}$
* Where the three bisectors cross is equidistant from A,B and C. Hence a circle with centre that point can pass through all three points.
* The circumcenter of an acute triangle is inside the triangle
* The circumcenter of a right triangle is on the hypotenuse
* The circumcenter of an obtuse triangle is outside the triangle
The radius of this circle (the circumradius, usually denoted by R) is found as follows: if a is any side of the triangle and A is the angle opposite this side, $R={\frac {a}{2\sin(A)}}$. To prove this, consider a triangle where two of the sides are radii of the circumcircle and the third is the side of length a. This triangle is isosceles (since all radii are of equal length), and the angle between the radii is 2A since the angle at the centre of a circle is twice the angle at the circumference. The formula follows from applying simple trigonometry to this triangle.
From the sine theorem, the same value of R will be found from all three sides.
If the other two sides are b and c, the area Δ of the triangle is ${\frac {bc}{2}}\sin(A)$. Multiplying together these two formulae, $\Delta R={\frac {abc}{4}}$.
Replacing a by 2Rsin(A), etc. it follows that
    Δ = 2R$^2$sin(A)sin(B)sin(C).
The circumcentre lies in the interior of a triangle if and only if all the angles are acute. For a right-angled triangle it lies at the centre of the hypotenuse, and if one angle is obtuse it lies outside the triangle. The circumcircle is the smallest circle that can enclose an acute-angled triangle. For an obtuse-angled triangle, the circle with the longest side as a diameter is smaller. (For a right-angled triangle, these two circles are identical.)
# Trigonometry/Circles and Triangles/The Excentral Triangle

Let ABC be a triangle, its incentre be I and its three excentres be I$_a$, I$_b$ and I$_c$. Then I$_a$I$_b$I$_c$ is the excentral triangle of ABC.
A lies on the line I$_b$I$_c$ and is the foot of the perpendicular from I$_a$ to that line, and similarly for B and C. Thus ABC is the pedal triangle (see later) of its excentral triangle. Further, these perpendiculars intersect at I, so I is the orthocentre of the excentral triangle.
I and I$_a$ lie on the bisector of angle BAC and similarly for the other excentres.
The quadrilaterals IBCI$_a$, IACI$_b$ and IABI$_c$ are cyclic.
I$_a$ is the orthocentre of the triangle I$_b$I$_c$I and similarly for the other excentres.
The distance II$_a$ is 4Rsin($^A$⁄$_2$) and similarly for the other excentres.

## Properties of the Excentral Triangle

The angles of this triangle are $90^{0}-{\frac {A}{2}},90^{0}-{\frac {B}{2}}{\text{ and }}90^{0}-{\frac {C}{2}}$.
Its sides are $4R\cos \left({\frac {A}{2}}\right),4R\cos \left({\frac {B}{2}}\right),4R\cos \left({\frac {C}{2}}\right)$.
Its area is $8R^{2}\cos \left({\frac {A}{2}}\right)\cos \left({\frac {B}{2}}\right)\cos \left({\frac {C}{2}}\right)=2Rs=\left({\frac {1}{2}}\right)\Delta {\text{cosec}}\left({\frac {A}{2}}\right){\text{cosec}}\left({\frac {B}{2}}\right){\text{cosec}}\left({\frac {C}{2}}\right)$
where Δ is the area of the original triangle.
Its circumradius is 2R.
# Trigonometry/Circles and Triangles/Other Centres of a Triangle

The circumcenter and incenter can both be regarded as in some senses the center of a triangle, though the circumcenter can lie outside the triangle. There are other points that can be regarded as the center.
The Orthocenter
If lines are drawn passing through each vertex of a triangle, perpendicular to the side opposite that vertex (these lines are called altitudes), they intersect at a point called the orthocenter of the triangle. The orthocenter lies inside an acute triangle, at the right angle of a right triangle, and outside an obtuse triangle.
The existence of the Orthocenter (in other words, the fact that the three altitudes intersect at one point) is a consequence of Ceva's Theorem, which will be discussed later.
If R is the circumradius of ABC, the distance between the orthocenter and circumcenter is R$^2$(1-8cos(A)cos(B)cos(C)).
Medians and the Centroid
If lines are drawn passing through each vertex of a triangle and the midpoint of the opposite side (these lines are called medians), they intersect at a point called the centroid of the triangle. Again, the fact that the centroid exists is a consequence of Ceva's Theorem. The centroid lies $^2$⁄$_3$ of the way from the vertex to the opposite side. It is the center of mass of three equal masses, one at each vertex, and also of a uniform piece of material in the shape of the triangle. If the sections of the medians lying between the centroid and the midpoints of the sides are erased, they will cut the triangle into three smaller triangles that are equal in area.
A median divides a triangle into two triangles of equal area.
If a median through a vertex is drawn, then a line from another vertex that bisects this median, it will cut the side opposite the second vertex at a point $^1$⁄$_3$ of the way from the first to the remaining vertex.
Euler's Theorem
The circumcenter O, orthocenter H and centroid G lie on a straight line and GH = 2OG. (Euler published this in 1765.)
# Trigonometry/Circles and Triangles/Philo's Line

Suppose any angle POQ and a point X between the lines OP and OQ. Philo's line is the shortest line AB through X such that A is on OP (or OP produced) and B is on OQ (or OQ produced).
If Y is the foot of the perpendicular from O to AB, then AY = BX.
# Trigonometry/Circles and Triangles/The Miquel Point

In general, four straight lines define four triangles (by omitting each line in turn we have three lines forming a triangle).
The four circumcircles of these triangles all intersect at the Miquel point. This point and the four circumcentres all lie on a circle.
The unique parabola of which the four lines are all tangents has its focus at the Miquel point.
# Understanding C++/LMOS

This page contains conventions for a local manual of style to be used in this book.
* Use the top-down approach exclusively in explaining C++.
* Use common terms from the C++ standard, when appropriate.
* Use relative links of the form [[/Page/]] for pages of the book.
* Use bold face for the first instance of a word being defined.
* Knowledge and experience of the operating environment that C++ is being used under is assumed.
* Keep explanations simple and interesting. Avoid undue complexity and lengthy explanations.
* Avoid referring to or linking to, other books or resources, except in the Glossary and Further Reading pages.
* Fair use images must not be used in this book.
* Add [[Category:{{BASEPAGENAME}}|{{SUBPAGENAME}}]] to the bottom of every page.
* Do not add any other categories to pages, except the main page.
# Understanding C++/Glossary
## api

    an interface made by a system or library to provide access to features and services

## build

    the process of compiling source code files into executable files

## cache

    an area of RAM used to temporarily store data. This reduces the time taken to access the data.

## executable

    a file which can be read as by a computer, containing instructions to be executed

## flush

    A method of forcing any data in the cache to be written to the output device.

## function

    a portion of code which performs a specific task and is relatively independent of the remaining code. Also known as subroutine although this is less often used in C++

## header

    a file which is included into the program, usually for the purposes of reusing the code in other files. Headers typically contain functions.

## IDE

    an integrated development environment, may include a text editor, compiler and debugger or other variations.

## integers

    informally, a "whole number". An integer is any positive natural number (1, 2, 3...), any negative natural number (-1, -2, -3...) or zero (0).

## runtime error

    an error that occurs upon execution of a program i.e. infinite loop.

## syntax error

    an error which causes the compiler to fail while creating an executable. The error must be fixed for the code to be compiled successfully.

## variable

    a variable assigns a particular instance of an object type a name or label by which the instance can be referred to. Typically a variable is bound to a particular address in computer memory that is automatically assigned to at runtime, with a fixed number of bytes determined by the size of the object type of a variable and any operations performed on the variable effects one or more values stored in that particular memory location.

   ## Some simple variables include

      * int - this creates a variable that is an integer (32 bits)
      * long - this too creates an integer variable, but it supports 64 bits
      * short - this again creates an integer, but it only supports 16 bits
      * float - this creates a variable that supports decimals
      * double - this creates a variable that supports MORE decimals
      * bool - this creates a boolean variable, that can only be true or false (1 bit)
      * char - this allows one character to be entered (i.e. "W") (7 or 8 bit)
# Understanding C++/Objects
## Objects

An object is an abstract idea or thing with characteristics and behaviors that can be manipulated. Objects also have names that people call them by. People use the name, characteristics, and behaviors of an object to define and to differentiate between different types of objects. An object type must be defined or declared before an object of that type can be created and manipulated. In the same way as builders cannot begin to build a school until after they have had a chance to read and understand the school's blueprint.

### Basic object types

C++ defines 8 basic object types. char, short, int, long, long long, double, long double, and bool.

### Standard object types

C++ defines additional object types in its standard library. Examples include string and vector.

### New objects

New objects are declared using the class or struct keyword followed by a name for the object, a body, and a semicolon (;). The body consists of a block () of instructions that define the characteristics and behaviors of the object that can be manipulated. You can also define and manipulate other objects inside the body too.
A silly example:
Here the class example contain two members -- one member variable, called v, and one member function, called f.

### Access specifiers

All members of an object are either public, protected, or private. This determines where members can be used.

### Public

Public members can be called and used anywhere. Other objects and functions can call and use public members.

### Protected

Protected members can only be called and used by the object and through objects that are in the inheritance tree. A object must inherit from an object in order to call and use its protected members. This may seem like a silly thing to do, but sometimes you need to share members and allow those members to behave differently in inherited objects without letting just anyone affect the behavior.

### Private

Private members can only be called and used by the object itself. Other objects that inherit from the object cannot call or use private members.

### Defining member functions outside the class definition

Defining the function in the example class is just like defining regular functions, except for one thing. In order to define a member function of a class you must prepend the class name and two colons to the name like so:
The defines the function in the class example.
# Understanding C++/Functions

int main {
Array [3] { 1,2,4};
cout << "enter the first number";
return 0;
# Understanding C++/Quick Reference

Preprocessor :
| #include <stdio.h> | includes contents of stdio.h |
| #error text | display text as compile time error |
| #warning text | display text as compile time warning |
| #pragma | compiler specific options |
| #define M | define M |
| #undef M | undefine M |
| #if (condition) | conditional compiling |
| #ifdef M | compiled if M is defined |
| #ifndef M | compiled if M is not defined |
| #elif (condition) | conditional compiling |
| #else | conditional compiling |
| #endif | end conditional section |
| defined | is macro defined. |
| !defined | is macro not defined |
| M ## D | combines M and D into MD |
| #M | treat M as string "M" |
* Syntax
* if (bool expr) block [else block]
* for ([expr];[condition];[expr]) block
* while (condition) block
* do { } while (condition)
* type identifier([type identifier, ...]);
* type identifier([type identifier, ...]) { }
* class identifier [:[private|public] type, ...];
* class identifier [:[private|public] type, ...] { [private:] };
* struct identifier [:[public|private] type, ...];
* struct identifier [:[public|private] type, ...] { [public:] };
* union identifier;
* union identifier { type identifier; ... };
* enum identifier;
* enum identifier { identifier [=int_value], ... }';
* typedef type identifier;
| OR | True | False |
| True | True | True |
| False | True | False |
| AND | True | False |
| True | True | False |
| False | False | False |
| XOR | True | False |
| True | False | True |
| False | True | False |
# Understanding C++/Further Reading
## Further Reading
### Books
#### The C++ Programming Language

    An in depth guide to C++ written by Bjarne Stroustrup, the creator of C++.

#### C++ Programming Language, The: Special Edition, 3rd Edition (Chapter Excerpt)
### wiki
#### Wikiversity: C++

    has learning resources for learning C++.

#### C++ Programming

    a book on C++ that you can help write

#### Subject:C++ programming language

    other Wikibooks related to C++
# Scriptapedia/Group Facilitation

Good group facilitation is an essential part of a successful community dialogue as it encourages participation and helps the group stay focused. Good facilitation also involves recognizing and managing conflicts that can arise in groups around different agendas and individual personalities. Here are some tips on facilitating the community dialogue:
* Stay neutral and balanced. Your role is not to advocate a particular position, but to facilitate a discussion where different opinions can be shared. Sometimes this means making sure everyone has a chance to speak and recognizing different opinions (e.g., paraphrasing the different points of view that have been raised). However, it can also mean interrupting someone who is pushing his or her agenda and not listening to others (e.g., “So you’re bringing up [state their position]. Could you push that further and relate it to what [another position that is raised by someone else]?”
* Before the session starts, try to connect with participants in the room. Whether you know the participants or not, greeting and establishing a connection with participants makes it easier to draw in participants later, and helps establish you as someone who can be neutral and fair with the participants in the room. This can also help anticipate any possible conflicts that may arise.
* Arrange and use the physical space in the room to help manage conversation flow. For example, if someone is dominating the conversation and you need to bring in other speakers, walk toward the group and invite other opinions (e.g., “Are there other thoughts on this?”). Likewise, if the group is having a great discussion and you want to encourage the conversation flow, step away from the group.
* Work the room during small group exercises. Small group exercises are not a time to take a break. The small group exercises are a great opportunity to connect with individual participants during the session (e.g., by asking participants if the directions are clear, providing positive reinforcement to the groups, etc.).
# Scriptapedia/Documenting GMB process

Documenting the GMB process is critical to the success of any GMB workshop. It encompasses the documentation of both the content of the participants' thoughts and discussions, as well as the group processes and group dynamics. Documenting these two aspects in a GMB workshop serves to ensure that the final output, in the form of an informal or formal model, accurately captures the full breadth and depth of the conversations had among the participants. The documentation of the group processes and group dynamics may also be used in the context of an overall evaluation of the GMB process, and contribute to further improvements to future GMB sessions.

## Documenting contents of GMB workshop

Documenting the contents that emerge from the discussions in the GMB workshop is the primary task of the recorder. This involves strong listening skills, and the ability to take detailed notes of the words, definitions and terminology used by the participants to describe causal relationships, variables, and structures, as well as comments and questions asked. It is also important for the recorder to note where there is significant agreement or disagreement among the participants during the discussion, and to document how the disagreement was resolved or how the group achieved consensus.
The reflector is another key member of the core modeling team who assists in summarizing the key issues and insights that have been developed by the participants. While the reflector helps the participants to reflect on what the group has done so far, and facilitates the process of identifying significant themes that have emerged from their discussions, the lead recorder takes note of the summary of issues and insights achieved by the group.

## Documenting group process and dynamics

The main responsibility of the process coach is to observe the group process by paying particular attention to how the participants are experiencing the workshop. The process coach takes note of the participants' behaviors, and language used in response to the facilitator's verbal prompts and body language. It is also useful for the process coach to observe the group dynamics during the session, in order to identify any dominant participants who may be interfering with the group process, and offer potential solutions to the facilitators. If necessary, the process coach may provide accurate and timely feedback to the facilitators to guide the direction and flow of the session towards a positive outcome.

## Creating artifacts

Throughout the GMB workshop, it is important to document the sessions by taking photographs of the ongoing process as well as the intermediate and final outputs of the scripts. The community facilitator or gatekeeper should seek the consent of group participants to take photographs of them, prior to the start of the session. If the participants consent to being photographed, members of the core modeling team can take turns creating photographic artifacts of the sessions.
# Scriptapedia/Dots
## Dots

This script is used to sift through many possible choices and select those most important to the participant group. For example, there are many times during GMB sessions where it is important to prioritize or reduce the number of items on which the group is working. This might take the form of choosing the top graph over time for inclusion in the model, or picking the stocks that will be incorporated.

### Status:

Best practices

### Primary nature of group task:

Evaluation

### Time

Preparation time: 0 minutes
Time required during session:10 minutes
Follow-up time: 0 minutes

### Materials

* Three to five adhesive dots per participant, or markers

### Inputs:

An array of items to vote on with dots, for example, a set of behavior over time graphs

### Outputs:

Prioritized choices

### Roles

* Facilitator to introduce the exercise

### Steps

* The facilitator gives every participant the same number of dots.
* The facilitator instructs participants to place their dots beside the items they think are most important to them. They can distribute the dots any way they want (e.g. put all of them on one behavior over time graph or spread dots out across several graphs).
* The facilitator tallies the dots beside each item to create a ranked list of importance.

### Evaluation Criteria:

* Participants have prioritized their choices
* Participants have achieved consensus on the most important items Example 1: Dots Exercise

### Authors

Unknown

### History

Unknown

### Revisions

None

### References

None

### Notes

* This is a nice activity to introduce before break or lunch as people will take various amounts of time
* The item with the most dots isn't "the winner," but helps the participants focus on important emerging themes as they move into the next activity
* If there is a large group, have participants come up in smaller waves to avoid congestion
# Scriptapedia/Editing Wikibooks Scriptapedia Pages

Scriptapedia is intended to be a freely distributed book and is meant to be easily edited to support the creation of new scripts, discussion of what works and what doesn't, and internationalization of group model building practice. Therefore, practitioners in the community are welcomed to edit and add scripts. Please refer to Creating and Contributing a Script to Scriptapedia for more on how to contribute to scripts. As for modifying and editing existing scripts, please consider adding your comments and concerns in the notes section of existing scripts. Kindly refer to Memo on Variation of Scripts if you are unsure if the modification is a variation or is a new script.