OpenLLM-France/wikimedia huggingface dataset:
# Algorithm Implementation/Mathematics/Fibonacci Number Program

Fibonacci is similar to a "hello world" for many functional programming languages, since it can involve paradigms like pattern matching, memoization, and bog-standard tail recursion (which is equivalent to iteration). However, iteration or tail-recursion in linear time is only the first step: more clever exponentiation runs in logarithmic time.
Although the Binet/Lucas formula is technically also exponentiation, ita use of floating-point numbers makes it less attractive than the matrix-based solution. In addition, the above discussion of complexity and indeed most of the code here assumes that both addition and multiplication are done in a single step, which is not the case for big, exponentially-growing numbers easily created by fibonacci calculation.

## C

An explanation of many of the following above can be found in nayuki's post.

### Matrix exponentiation, compact

A similar alternative is based on Lucas numbers.

### Matrix-derived fast doubling
## C#

C# code is essentially the same as C with some static method specifiers.

### Using long numbers
## D
### Memoized Recursive Version
## Erlang
### Arithmetic version

algorithm taken from the Pascal "more efficient" version, below

## F#
### Simple recursive

This version uses F# System.Numerics.BigInteger type

### Infinite Sequence Generator
## Forth
## Haskell
### List version
### Awesome recursive version

Or :
Or :

### Closed-form version

Defines arithmetic operations on a custom data type, and then uses it to run the explicit formula without going via floating point - no rounding or truncation. Calculates the ten millionth fibonacci number in a few seconds (it has roughly two million digits).
For other versions, see :
* Haskell/Overview
* nayuki's fast doubling again, but recursive this time

## Dyalog APL
#### Other Versions

See Fibonacci at the Dynamic Functions Database

## Pascal
#### A bit more efficient

Note that Power is usually defined in Math, which is not included by default.
For most compilers it's possible to improve performance by using the Math.IntPower instead of the Math.Power.

#### Iterative version also for negative arguments
## Perl
#### Recursive versions
### Binary recursion, snippet

Runs in Θ(F(n)) time, which is Ω(1.6$^n$).

### Iterative, snippet
## PHP
### Alternate version
## Python
### Recursive version

Or :

#### Recursive with memoization
### Lucas sequence identities, recursion

As with the iterative version, this solution is also O(log n) with arbitrary precision.

## Ruby

Alternate:

### Memoized Version
## Scheme
### Logarithmic-time Version

This version squares the Fibonacci transformation, allowing calculations in log$_2$(n) time:

## JavaScript
### Recursive version
### Alternative recursive version

Prev and cur is optional arguments.

### Iterative version

This example supports negative arguments.

### Algorithm from the Pascal "more efficient" version
## Common Lisp
### Recursive version
## PostScript
### Stack recursion

This example uses recursion on the stack.
# Algorithm Implementation/Mathematics/Extended Euclidean algorithm
## Python

Both functions take positive integers a, b as input, and return a triple (g, x, y), such that ax + by = g = gcd(a, b).

### Modular inverse

An application of extended GCD algorithm to finding modular inverses:
# Algorithm Implementation/Mathematics/Modular Exponentiation
## Algorithm

Here we show the modular exponentiation algorithm for integers - a way to efficiently compute a$^e$ (mod n). This general algorithm may also be used for other algebraic structures which have multiplication and exponentiation and is efficient when the size of values has an upper bound - the modulus. Other structures which can use this basic algorithm include matrix exponentiation with floating point coefficients and elliptic curve computations over finite fields (although in that case the operation is called multiplication, not exponentiation).

### Low to High Algorithm

This is the most intuitive algorithm. The algorithm scans the exponent, a bit at a time, and if the nth bit has the value 1, multiplies the accumulator by a$^{2^n}$, which is computed by successive squaring as the exponent is traversed.
A pseudocode description is:

### High to Low Algorithm

This algorithm uses slightly less memory - not requiring separate storage of the powers of a, and is also more efficient if the base a has a special structure (such as being small), making multiplication by it easy. The algorithm scans the exponent, a bit at a time, from the bit immediately following the top bit to the low order bit.
A pseudocode description is:

## C
### Low-to-High algorithm with GMP

GMP allows for calculating with arbitrary precision. The GMP library has a mpz_powm(result,a,e,n) function, so this is not needed, but is here strictly for expository value.

## Java
### Low-to-High algorithm with BigInteger

The Java BigInteger class has a modPow(e, n) method, so this is not needed, but is here strictly for expository value.

## Python
### Low-to-High algorithm

Python has a pow(a, e, n) function, so this is not needed, but is here strictly for expository value.
# Algorithm Implementation/Mathematics/Pythagorean theorem

In mathematics, the Pythagorean theorem or Pythagoras' theorem is a relation in Euclidean geometry among the three sides of a right triangle (right-angled triangle). In terms of areas, it states:
   In any right triangle, the area of the square whose side is the hypotenuse (the side opposite the right angle) is equal to the sum of the areas of the squares whose sides are the two legs (the two sides that meet at a right angle).
The theorem can be written as an equation relating the lengths of the sides a, b and c, often called the Pythagorean equation:
    $a^{2}+b^{2}=c^{2}\!\,$
where c represents the length of the hypotenuse, and a and b represent the lengths of the other two sides.
Note: for most languages, a built-in hypot function performs the same calculation. This is for education only.

## References

* ↑ Judith D. Sally, Paul Sally (2007). "Chapter 3: Pythagorean triples". Roots to research: a vertical development of mathematical problems. American Mathematical Society Bookstore. p. 63. ISBN 0821844032.
# Algorithm Implementation/Mathematics
## Contents

* Primality Testing
* Prime number generation
* Fibonacci Number Program
* Extended Euclidean algorithm
* Modular Exponentiation
* Polynomial evaluation
* Polynomial interpolation
* Pythagorean theorem
# Algorithm Implementation/Mathematics/Polynomial interpolation

Lagrange interpolation is an algorithm which returns the polynomial of minimum degree which passes through a given set of points (x$_i$, y$_i$).

## Algorithm

Given the n points (x$_0$, y$_0$), ..., (x$_{n-1}$, y$_{n-1}$), compute the Lagrange polynomial $p(x)=\sum _{i=0,...,n-1}y_{i}{\frac {\prod _{j\neq i}(x-x_{j})}{\prod _{j\neq i}(x_{i}-x_{j})}}$. Note that the ith term in the sum, $y_{i}{\frac {\prod _{j\neq i}(x-x_{j})}{\prod _{j\neq i}(x_{i}-x_{j})}}$ is constructed so that when x$_j$ is substituted for x to have a value of zero whenever j≠i, and a value of y$_j$ whenever j = i. The resulting Lagrange polynomial is the sum of these terms, so has a value of p(x$_j$) = 0 + 0 + ... + y$_j$ + ... + 0 = y$_j$ for each of the specified points (x$_j$, y$_j$).
In both the pseudocode and each implementation below, the polynomial p(x) = a$_0$ + a$_1$x + a$_2$x$^2$ + ... + a$_{n-1}$x$^{n-1}$ is represented as an array of it's coefficients, (a$_0$, a$_1$, a$_2$, ..., a$_{n-1}$).

### Pseudocode

In sample implementations below, the polynomial p(x) = a$_0$ + a$_1$x + a$_2$x$^2$ + ... + a$_{n-1}$x$^{n-1}$ is represented as an array of it's coefficients, (a$_0$, a$_1$, a$_2$, ..., a$_{n-1}$).
While the code is written to expect points taken from the real numbers (aka floating point), returning a polynomial with coefficients in the reals, this basic algorithm can be adapted to work with inputs and polynomial coefficients from any field, such as the complex numbers, integers mod a prime or finite fields.
# Algorithm Implementation/Mathematics/Primality Testing

In practice, primality testing for numbers of a size suitable for cryptographic applications has to be done in a probabilistic way. Such an algorithm can tell whether a given number is prime with extremely high probability, but cannot provide a certain proof. Many such algorithms operate with a variable number of rounds of testing; each additional round of testing makes it less likely to falsely classify the number, so the implementer can choose a suitable number of rounds to provide a trade off between the level of certainty and the running time of the algorithm.

## Miller-Rabin (or Rabin-Miller) primality test
### Java

For educational purpose only. See the official source code of BigInteger.isProbablePrime for a proper implementation on e.g. OpenJDK 7 or GNU classpath.
# Algorithm Implementation/Mathematics/Prime number generation
## Haskell

For each number, check whether it is divisible by any of the primes not above its square root. This is an optimal trial division algorithm:
Note that this code utilizes Haskell's lazy evaluation, to allow primes and isPrime to be defined in terms of each other.
The Sieve of Erastosthenes has better theoretical complexity than trial division:
Were a (minus a b) operation to have a complexity of $O(|b|)$, as it indeed is so on mutable arrays in imperative languages, this code would achieve the theoretical complexity of the S. of E. Unfortunately it is $O(|a\cup b|)$ with linked lists.
Recast as unbounded definition, yet faster and with better complexity due to the tree-shaped folding:
This replaces the linear left-leaning nested chain of minus operations in primesTo function, with an unbounded right-deepening tree of progressively growing balanced trees of unions. A sizable constant-factor speedup can be further achieved with wheel factorization. The utility functions used above (also found in data-ordlist package's Data.List.Ordered module) are:
The removal of composites is easy with arrays. Processing is naturally broken into segments between squares of consecutive primes:

## Java

simple naive algorithm
Sieve of Erastosthenes, from here

## Phix

You can get exactly the same output (the first 168 primes) from

## Ruby

Note that Ruby has a built-in Sieve of Erastosthenes prime number generator:

## F# / OCaml
## C (Fast bitwise)

Fast implementation of bitwise Sieve of Eratosthenes. Little bit cheating, because it's counts only odd primes (read as: you need to add first prime - "2" manually).
There is also OpenMP #pragma's along the way, so you can try compile it with -fopenmp
# Chemical Sciences: A Manual for CSIR-UGC National Eligibility Test for Lectureship and JRF/Spectral Database for Organic Compounds

Spectral Database for Organic Compounds (SDBS) is a website hosted by the National Institute of Advanced Industrial Science and Technology of Japan. It is freely accessible, and contains extensive spectroscopic data for organic compounds including that for infrared and NMR spectroscopy and mass spectrometry.
# Chemical Sciences: A Manual for CSIR-UGC National Eligibility Test for Lectureship and JRF/Spin chemistry

Spin Chemistry is a sub-field of chemistry and physics, positioned at the intersection of chemical kinetics, photochemistry, magnetic resonance and free radical chemistry, and dealing with magnetic and spin effects in chemical reactions. The examples of phenomena that Spin Chemistry deals with are Chemically Induced Dynamic Nuclear and Electron Polarization (CIDNP and CIDEP), magnetic isotope effects in chemical reactions, as well as the environmental and health effects of static and oscillating electromagnetic fields.
Some of the prominent scientists in the field (in alphabetical order) are:
* E. G. Bagryanskaya (Novosibirsk, Russia),
* K.-P. Dinse (Darmstadt, Germany),
* S. A. Dzuba (Novosibirsk, Russia),
* M. D. E. Forbes (Chapel Hill, USA),
* P. Gast (Leiden, Netherlands),
* P. J. Hore (Oxford, UK),
* G. Jeschke (Mainz, Germany),
* R. Kaptein (Utrecht, Netherlands),
* C. W. M. Kay (Berlin, Germany),
* K. Möbius (Berlin, Germany),
* Yu. N. Molin (Novosibirsk, Russia),
* J. R. Norris (Chicago, USA),
* R. Z. Sagdeev (Novosibirsk, Russia),
* K. M. Salikhov (Kazan, Russia),
* U. Steiner (Konstanz, Germany),
* S. Tero-Kubota (Sendai, Japan),
* C. R. Timmel (Oxford, UK),
* A. J. van der Est (St. Catharines, Canada)
* H.-M. Vieth (Berlin, Germany),
* S. Weber (Berlin, Germany).

## See also

The spin chemistry portal.
# Chemical Sciences: A Manual for CSIR-UGC National Eligibility Test for Lectureship and JRF/Special Topics

* Intellectual property Rights
* Biopolymers
# Chemical Sciences: A Manual for CSIR-UGC National Eligibility Test for Lectureship and JRF/Spin labels

A spin label (SL) is an organic molecule which possesses an unpaired electron, usually on a nitrogen atom, and the ability to bind to another molecule. Spin labels are normally used as tools for probing proteins or biological membrane-local dynamics using EPR spectroscopy. The site-directed spin labeling (SDSL) technique allows one to monitor a specific region within a protein. In protein structure examinations, amino acid-specific SLs can be used.
The goal of spin labeling is somewhat similar to that of isotopic substitution in NMR spectroscopy. There one replaces an atom lacking a nuclear spin (and so is NMR-silent) with an isotope having a spin I $\neq$ 0 (and so is NMR-active). This technique is useful for tracking the chemical environment around an atom when full substitution with an NMR-active isotope is not feasible. Recently, spin-labelling has also been used to probe chemical local environment in NMR itself, in a technique known as Paramagnetic Relaxation Enhancement (PRE).

## References

Berliner, L.J. (1976). Spin labeling I : theory and applications, Academic Press, New York.
Berliner, L.J. (1979). Spin labeling II : theory and applications, Academic Press, New York.
# Chemical Sciences: A Manual for CSIR-UGC National Eligibility Test for Lectureship and JRF/Spin trapping

Spin trapping is an analytical technique employed in the detection and identification of short-lived free radicals. Spin trapping involves the addition of radical to a nitrone spin trap resulting in the formation of a spin adduct, a nitroxide-based persistent radical, that can be detected using electron paramagnetic resonance (EPR) spectroscopy. The spin adduct usually yields a distinctive EPR spectrum characteristic of a particular free radical that is trapped. The identity of the radical can be inferred based from the EPR spectral profile of their respective spin adducts such as the g value, but most importantly, the hyperfine-coupling constants of relevant nuclei. Unambiguous assignments of the identity of the trapped radical can often be made by using stable isotope substitution of the radicals parent compound, so that further hyperfine couplings are introduced or altered.
The most commonly used spin traps are alpha-phenyl N-tertiary-butyl nitrone (PBN) and 5,5-dimethyl-pyrroline N-oxide (DMPO). More rarely, C-nitroso spin traps such as 3,5-Dibromo-4-nitrosobenzenesulfonic acid (DBNBS) can be used as spin traps: often additional hyperfine information is derived, but at a cost of specificity (due to facile non-radical addition of many compounds to C-nitroso species, and subsequent oxidation of the resulting hydroxylamine).
5-Diisopropoxyphosphoryl-5-methyl-1-pyrroline-N-oxide (DIPPMPO) spin trapping has been used in measuring superoxide production in mitochondria.
The use of radical-addition reactions to detect short-lived radicals was first proposed by E. G. Janzen in 1965.
It is worth noting that the radical adduct (or products such as the hydroxylamine) can often be stable enough to allow non-EPR detection techniques. The groups of London, and Berliner & Khrahmtsov have used NMR to study such adducts and Timmins and co-workers used charge changes upon DBNBS trapping to isolate protein adducts for study. A major advance has been the development of anti-DMPO antibodies by Mason's group, allowing study of spin trapping reactions by a simple immuno-based techniques.
# Chess Opening Theory/1. e4/1...e5/2. Bc4/2...Bc5/3. Qh5/3...Nf6

| | a | b | c | d | e | f | g | h | |
| 8 | | | | | | | | | 8 |
| 7 | | | | | | | | | 7 |
| 6 | | | | | | | | | 6 |
| 5 | | | | | | | | | 5 |
| 4 | | | | | | | | | 4 |
| 3 | | | | | | | | | 3 |
| 2 | | | | | | | | | 2 |
| 1 | | | | | | | | | 1 |
| | a | b | c | d | e | f | g | h | |

## 3...Nf6??

This will be Black's last move. He, in his hotheaded desire to take White's queen and develop his knight, has not seen the threat of Qxf7#(Scholar's Mate).
# Bishop's Opening
### 2...Nc6

Black's Queen's Knight defends the e5 pawn and can be a possible threat to move to a5 attacking the White Bishop.

## Theory table

For explanation of theory tables, see theory table and for notation, see algebraic notation. .
1. e4 e5 2.Bc4 Nc6
| | 3 | 4 | 5 | 6 |
| Italian Game | Nf3 | See 2.Nf3 Nc6 3.Bc4 | See 2.Nf3 Nc6 3.Bc4 | See 2.Nf3 Nc6 3.Bc4 |
| Vienna Game | Nc3 Nf6 | d3 Na5 | Nge2 Nxc4 | dxc4 Bc5 | = |
| Giuoco Pianissimo | d3 Nf6 | Nf3 Bc5 | c3 a6 | Bb3 d6 | = |
| Parham Attack | Qh5 g6 | Qf3 Nf6 | Ne2 Bg7 | | = |
When contributing to this Wikibook, please follow the Conventions for organization.
# Chess Opening Theory/1. e4/1...e5/2. Bc4/2...Nf6
## Bishop's Opening: Berlin Defence
### 2... Nf6

Black develops the king's knight and in doing so threatens the e4-pawn and makes it possible to play d5. This move also preempts Scholar's Mate by preventing 3. Qh5, and blocking the queen's path in the 3. Qf3 version of the mate.
White's options:
   * 3. d3 is the most common continuation.
   * 3. d4 can go either to Ponziani-Urusov Gambit or to the Two Knights Defence by transposition.
   * 3. Nc3 transposes to the Vienna Game (Falkbeer Defence), with an opportunity to use a center fork trick.
   * 3. Nf3 transposes to Petrov's Defence.
   * 3. f3 should not be played

## Theory table

For explanation of theory tables, see theory table and for notation, see algebraic notation. .
1. e4 e5 2. Bc4 Nf6
| | 3 | 4 | |
| Modern Bishop's Opening | d3 Nc6 | Nf3 Be7 | = |
| Ponziani/Urusov Gambit | d4!? | | = |
| Vienna Game by transposition | Nc3 | | = |
| Petrov's Defence by transposition | Nf3 | | ⩱ |
When contributing to this Wikibook, please follow the Conventions for organization.

## References

* Panov, Vasily. (1973). Teoría de Aperturas, Tomo I: Aperturas Abiertas - Aperturas Semiabiertas. ISBN 84-270-0132-0.
# Chess Opening Theory/1. e4/1...e5/2. Bc4/2...Bc5/3. Qh5/3...Nc6
## 3...Nc6??

| | a | b | c | d | e | f | g | h | |
| 8 | | | | | | | | | 8 |
| 7 | | | | | | | | | 7 |
| 6 | | | | | | | | | 6 |
| 5 | | | | | | | | | 5 |
| 4 | | | | | | | | | 4 |
| 3 | | | | | | | | | 3 |
| 2 | | | | | | | | | 2 |
| 1 | | | | | | | | | 1 |
| | a | b | c | d | e | f | g | h | |
The last move for black. He had not seen the threat of 4.Qxf7#.

## Theory Table

    1. e4 e5 2. Bc4 Bc5 3. Qh5 Nc6??
| ... ... | 4.Qxf7# |
# Chess Opening Theory/1. e4/1...e5/2. Bc4/2...Bc5/3. Qh5/3...Nc6/4. Qxf7
## Scholar's Mate
### 4. Qxf7#

Black is checkmated by Scholar's Mate.
# Bishop's Opening - Sideline 2... Be7?

2…Be7? After 3. Qh5 with the mate threat, White can respond to 3... g6 with 4. Qxe5, winning a pawn. Black can react for a few moves, but White can sort it out with a pawn up.

## Theory table

For explanation of theory tables, see theory table and for notation, see algebraic notation. .
1. e4 e5 2. Bc4 Be7?
| | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | |
| Sideline 2... Be7? | Qh5! g6 | Qxe5 Nf6 | Nc3 Nc6 | Qf4 Bd6 | Qe3 O-O | h3 Bb4 | Nge2 Na5 | d3 Nxc4 | dxc4 | | | ± |
| Sideline 2... Be7? | ... ... | ... ... | ... ... | ... ... | ... Ng4 | Qe2 Nge5 | Bb3 Nd4 | Qe3 Nxb3 | axb3 | | | ± |
| Sideline 2... Be7? | ... ... | ... ... | ... ... | ... ... | ... ... | ... ... | ... ... | ... Bc5 | Qg3 Bd6 | f4 Nec6 | Nf3 | ± |
| Sideline 2... Be7? | ... ... | ... ... | ... ... | ... ... | ... ... | ... ... | ... ... | ... Nec6 | Nf3 | | | ± |
| Sideline 2... Be7? | ... ... | ... ... | ... ... | ... ... | ... ... | ... Nd4 | Qxg4 Nxc2+ | Kd1 Nxa1 | e5 Bxe5 | Qe2 O-O | Qxe5 | ± |
| Sideline 2... Be7? | ... ... | ... ... | ... ... | ... ... | ... ... | ... ... | ... ... | ... ... | ... ... | ... f6 | Nf3 | ± |
When contributing to this Wikibook, please follow the Conventions for organization.

## References

Bibliography
* Kasparov, Gary & Keene, Raymond (1989, 1994). Batsford Chess Openings 2. ISBN 0-8050-3409-9.
* Lane, Gary (1993). Winning With the Bishop's Opening. ISBN 0-7134-7113-1.
External links
* Goeller, Michael. The Bishop's Opening.
* Harding, Tim (August 1998). The Kibitzer: What Exactly is the Bishop's Opening?. ChessCafe.com.
* Harding, Tim (September 1998). The Kibitzer: The Eternal Appeal Of The Urusov Gambit. ChessCafe.com.
* Harding, Tim (October 1998). The Kibitzer: Is the Urusov Gambit Sound?. ChessCafe.com
# Chess Opening Theory/1. e4/1...e5/2. Bc4/2...Nf6/3. d3
## Bishop's Opening: "Modern" Berlin Defence

The "Modern" Berlin System is a strategic choice, initiated with the moves 1. e4 e5 2. Bc4 Nf6 3. d3, focuses on controlling the center and preparing for a solid game structure.
Key aspects of 3. d3:
* Positioning of the Bishop: The move 2. Bc4 develops the bishop to a strong diagonal, targeting the f7-square, a key weakness in Black's position.
* Flexibility in Pawn Structure: The move 3. d3 supports the e4 pawn and prepares for a broader pawn structure. It also opens the diagonal for the light-square bishop and lays the groundwork for a potential kingside castle.
* Response to Black's Nf6: It challenges White's e4 pawn and develops a knight towards the center.
* Options for Further Development: White can further develop their pieces with moves like Nf3, O-O, and Re1, aiming for a solid central presence and potential kingside attacks. Also, 3. d3 defends the e4-pawn and opens up White's dark-square bishop.
* Strategic Considerations: This opening sets the stage for a game with strategic depth, where both sides aim to control the center and develop their pieces effectively for middle-game plans.

## Theory table

For explanation of theory tables, see theory table and for notation, see algebraic notation. .
1. e4 e5 2. Bc4 Nf6 3. d3
| | 3 | 4 | 5 | 6 | 7 | 8 |
| | ... c6 | Nf3 d6 | O-O Be7 | c3 O-O | Bb3 Nbd7 | Re1 | = |
| | ... ... | ... ... | ... ... | ... ... | Nbd2 Nbd7 | a4 | = |
| | ... ... | ... ... | ... ... | Re1 O-O | a4 | | = |
| Two Knights Defence 4. d3 | ... Nc6 | Nf3 | | | | | = |
| Giuoco Pianissimo | ... Bc5 | Nf3 d6 | c3 O-O | O-O Nc6 | | | = |
When contributing to this Wikibook, please follow the Conventions for organization.

## References

Bibliography
* Kasparov, Garry, & Keene, Raymond 1989 Batsford chess openings 2. ISBN 0-8050-3409-9.
* Lane, Gary. (1993). Winning with the Bishop's Opening. ISBN 0-7134-7113-1.
* Panov, Vasily (1973). Teoría de Aperturas, Tomo I: Aperturas Abiertas - Aperturas Semiabiertas. ISBN 84-270-0132-0.
* Schiller, Eric (2002). Standard Chess Openings. ISBN 1-58042-048-6.

#### External links

* Goeller, Michael. The Bishop's Opening.
* Harding, Tim (August 1998). The Kibitzer: What Exactly is the Bishop's Opening?. ChessCafe.com.
* Harding, Tim (September 1998). The Kibitzer: The Eternal Appeal Of The Urusov Gambit. ChessCafe.com.
* Harding, Tim (October 1998). The Kibitzer: Is the Urusov Gambit Sound?. ChessCafe.com
* The Chess Website.com (2023). Bishop’s Opening
* Chessgeek.com (2021). Learn the POWERFUL Bishop's Opening.
* Perunovic, Miodrag (2023). The Bishop's Opening: How To ATTACK!!.
* Remote Chess Academy (Smirnov, Igor) (2021). The Unbeatable Bishop’s Opening (simple and powerful).
* TheChessGiant.com (Solomon, Ruddell) (2021). Chess Openings: Learn to Play the Bishop’s Opening!.
# Chemical Sciences: A Manual for CSIR-UGC National Eligibility Test for Lectureship and JRF/Deuterated DMSO

Deuterated DMSO ((CD$_3$)$_2$S=O) is a form (called an isotopologue) of dimethyl sulfoxide (DMSO, (CH$_3$)$_2$S=O)) in which the hydrogen atoms ("H") are replaced with deuterium (heavy hydrogen) isotope ("D"). Deuterated DMSO is a common solvent used in NMR spectroscopy.