OpenLLM-France/wikimedia huggingface dataset:
# Ada Programming/Libraries/Ada.Containers.Bounded Synchronized Queues

This language feature has been introduced in Ada 2012.
Ada.Containers.Bounded_Synchronized_Queues is a unit of the Predefined Language Environment since Ada 2012.

## See also
### Wikibook

* Ada Programming/Libraries/Ada
* Ada Programming/Libraries/Ada.Containers

### External examples

* Search for examples of Ada.Containers.Bounded_Synchronized_Queues in: Rosetta Code, GitHub (gists), any Alire crate or this Wikibook.
* Search for posts related to Ada.Containers.Bounded_Synchronized_Queues in: Stack Overflow, comp.lang.ada or any Ada related page.

### Ada Reference Manual
#### Ada 2012

* A.18.29: The Generic Package Containers.Bounded_Synchronized_Queues

### Open-Source Implementations

FSF GNAT
* Specification: a-cbsyqu.ads
* Body: a-cbsyqu.adb
# Ada Programming/Libraries/Ada.Containers.Generic Constrained Array Sort

This language feature is only available from Ada 2005 on.
Ada.Containers.Generic_Constrained_Array_Sort is a unit of the Predefined Language Environment since Ada 2005.

## See also
### Wikibook

* Ada Programming/Libraries/Ada

### External examples

* Search for examples of Ada.Containers.Generic_Constrained_Array_Sort in: Rosetta Code, GitHub (gists), any Alire crate or this Wikibook.
* Search for posts related to Ada.Containers.Generic_Constrained_Array_Sort in: Stack Overflow, comp.lang.ada or any Ada related page.

### Ada Reference Manual
#### Ada 2005

* A.18.16: Array Sorting

#### Ada 2012

* A.18.26: Array Sorting
# Ada Programming/Libraries/Ada.Containers.Bounded Priority Queues

This language feature has been introduced in Ada 2012.
Ada.Containers.Bounded_Priority_Queues is a unit of the Predefined Language Environment since Ada 2012.

## See also
### Wikibook

* Ada Programming/Libraries/Ada
* Ada Programming/Libraries/Ada.Containers

### External examples

* Search for examples of Ada.Containers.Bounded_Priority_Queues in: Rosetta Code, GitHub (gists), any Alire crate or this Wikibook.
* Search for posts related to Ada.Containers.Bounded_Priority_Queues in: Stack Overflow, comp.lang.ada or any Ada related page.

### Ada Reference Manual
#### Ada 2012

* A.18.31: The Generic Package Containers.Bounded_Priority_Queues

### Open-Source Implementations

FSF GNAT
* Specification: a-cbprqu.ads
* Body: a-cbprqu.adb
# Chess Opening Theory/1. e4/1...c5/2. b4
## Sicilian Wing Gambit

2. b4 marks the Sicilian Wing Gambit. There are other wing gambits like this using the b-pawn (for instance, the Evans Gambit); however, this wing gambit is the most common one. The b-pawn push tries to undermine Black's c-pawn control of d4.
This gambit is unsound at the top level, and Black can safely accept it. However, it is common in amateur play.

### Black's responses

2...cxb4. Black usually accepts the gambit. White is most likely to play 3. a3 to try to develop the knight by either recapturing on a3 or going to c3.
2...d5. Black can always decline the gambit and attack White's e-pawn.

## Theory table

1. e4 c5 2. b4
| | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Evaluation |
| Wing Gambit Accepted | ... cxb4 | a3 d5 | exd5 Qxd5 | Nf3 | | | | | | |
| Wing Gambit Declined | ... d5 | exd5 | | | | | | | | |
For explanation of theory tables, see theory table and for notation, see algebraic notation.
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.

## External links

* 365Chess: 1. e4 c5 2. b4
* This Chess related article is a stub. Please assist Wikibooks by expanding it.
# Chess Opening Theory/1. e4/1...c5/2. b4/2...cxb4
## 2...cxb4 · Wing Gambit Accepted

Black bravely accepts the gambit. Since the gambit is of questionable soundness, it is best to accept it.
One trap: a3 d5! (Countering in the center) exd5 Qxd5 axb4?? (White, in his eagerness to regain the pawn, forgot a simple tactic), Qe5+ wins the rook on a1.
The recommended refutation is to counterattack in the center at the right time.

### White's responses

3. a3.
3. d4.

## Theory table

| | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Evaluation |
| Wing Gambit Accepted | a3 bxa3 | Bxa3 | | | | | | | |
| Wing Gambit Accepted | a3 bxa3 | Nxa3 | | | | | | | |
| Wing Gambit Accepted | a3 bxa3 | d4 | | | | | | | |
| Wing Gambit Accepted | a3 d5 | exd5 Qxd5 | Nf3 | | | | | | =/– |
| Wing Gambit Accepted | a3 d5 | exd5 Qxd5 | axb4 Qe4+ | Be2 Qxa1 | | | | | |
| Wing Gambit Accepted | a3 d5 | exd5 Qxd5 | Bb2 e5 | Nf6 Nc6 | c4 Qe6 | Bd3 Nf6 | O-O Bd6 | Re1 O-O | |
| Wing Gambit Accepted | a3 e5 | | | | | | | | |
| Wing Gambit Accepted | d4 d5 | e5 Nc6 | a3 Qb6 | | | | | | = |
When contributing to this Wikibook, please follow the Conventions for organization.
# Chess Opening Theory/1. e4/1...c5/2. b4/2...cxb4/3. a3
## 3. a3

This move hopes for bxa3, when White would have good compensation after Bxa3 due to his development and open queenside files. However, d5! is very strong. exd5 is usually played and is the best move. Black is better.

## Theory table

| 3 | 4 | |
| a3 d5 | exd5 Qxd5 | =/- |
When contributing to this Wikibook, please follow the Conventions for organization.
# Chess Opening Theory/1. e4/1...c5/2. b4/2...cxb4/3. a3/3...d5
## 3...d5!

This is the antidote to the Wing Gambit. Black counterattacks in the center and prevents axb4 due to dxe4, winning a central pawn. White cannot win the pawn back with 4. exd5 Qxd5 5. axb4?? due to 5... Qe5+.

## Theory table

| 4 | 5 |
| exd5 Qxd5 | Nf3 | -/= |
| e5 Nc6 | d4 Qb6 | -/= |
When contributing to this Wikibook, please follow the Conventions for organization.
# Tarrasch Defense
### 3...c5

Black aggressively attempts to gain space in the center, with the caveat of an isolated pawn on d5 after a few pawn exchanges.

## Theory table

For explanation of theory tables, see theory table and for notation, see algebraic notation. .
1. d4 d5 2. c4 e6 3. Nc3 c5
| | 4 | 5 | 6 |
| Tarrasch Defence | cxd5 exd5 | Nf3 Nc6 | g3 Nf6 | = |
| Swedish Variation | ... | ... | ... c4 | ∞ |
| Symetrical Variation | e3 Nf6 | Nf3 Nc6 |
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.
# Queen's Gambit Declined
### 3...c6

In this position, by delaying Nf6, Black keeps many opportunities open. They can keep on playing in the normal Queen's Gambit Declined (QGD) fashion with 4...Nf6 (whether white plays e3 or Nf3), or can try different other options.
4.Nf3 can lead to regular QGD games or, for example, the Noteboom variation : 4...dxc4. Here, Black aims to get two passed flanked pawns in exchange for White's big center. The middlegame is critical, but if Black survives, then the endgame is favorable for Black.
On the other hand 4.e3 can lead to a stonewall defense position with 4...f5, where Black's usual plan is a quick attack on the king side and can often involve a rook lift to f6.
Another option for White, though less popular, is the Marshall Gambit of the Semi-Slav, with 4.e4. This move aims at exploiting Black's lack of control of e4, not having played Nf6. Main line goes 4...dxe4 5.Nxe4 Bb4+ 6.Bd2 Qxd4 7.Bxb4 Qxe4+ with a sharp game. Usually White blocks with Be2 and leaves the g2 pawn hanging. Black can capture it, but not the rook (Bf3 wins the queen). In return, White can have annoying pressure and tactics involving the d6 weakness. An example game played in this line is Bacrot - Morozevich, Biel Rd2, 2012.

## Theory table

For explanation of theory tables, see theory table and for notation, see algebraic notation. .
1. d4 d5 2. c4 e6 3. Nc3 c6
| | 3 | 4 |
| Queen's Gambit Declined | Nf3 Nf6 | = |
| Queen's Gambit Declined Semi-Slav | e3 Nf6 | = |
| Marshall Gambit of the Semi-Slav | e4 dxe4 | ∞ |
When contributing to this Wikibook, please follow the Conventions for organization.

## References

* This Chess related article is a stub. Please assist Wikibooks by expanding it.
# Chess Opening Theory/1. d4/1...d5/2. c4/2...e6/3. Nc3/3...c6/4. e4
## 4. e4

This move controls the center and creates a huge pawn roller. Black's c8-bishop will be blocked and inactive for some time. However, White will have to sac a pawn in a few moves if they want to fight for the edge. Black didn't move a single piece yet and put all their central pawns on light squares. White quickly got e4 in.

## Theory table

| 4 | 5 | 6 | |
| ... dxe4 | Nxe4 Bb4+ | Bd2 Qxd4 | = |
| ... Bb4!? | | | = |
When contributing to this Wikibook, please follow the Conventions for organization.
# Chess Opening Theory/1. d4/1...d5/2. c4/2...e6/3. Nc3/3...c6/4. e4/4...dxe4
## 4...dxe4

5. Nxe4 is the obvious recapture.
When contributing to this Wikibook, please follow the Conventions for organization.
# Chess Opening Theory/1. d4/1...d5/2. c4/2...e6/3. Nc3/3...f5

1. d4 d5 2. c4 e6 2.Nc3 f5
The Dutch Stonewall, contrived through a transpositional trick! This variation avoids the 2. Nc3 and 3. Bg5 lines against the Dutch. Black opts to play f5 only after White plays c4 and Nc3.
Black gets a bind on e4 while creating a hole on e5, but White can play f3 to guard e4 while black does not have similar option to protect e5. White will try to blast open the position by arranging to play e4 at an appropriate time. Black will try to build up against White's King with a kingside pawn roller. Qh5, Rf6, etc. with a King's Indian-type attack on White's King is always on cards. White also has play on the queenside. Black's Queen Bishop is a tricky piece. It could be a problem piece for black in certain variations. In others, it aims for a deadly sacrifice on h3 at an opportune moment, as in the King's Indian.

## Theory table

{{ChessTable}
1. d4 d5 2. c4 e6 3.Nc3 f5
When contributing to this Wikibook, please follow the Conventions for organization.
# Queen's Gambit Declined

With 3.Nf3, White begins the development of his minor pieces after establishing a pawn center on the first two moves. 3.Nf3 controls important central squares, but unlike 3.Nc3, it does not immediately help to prepare the e4 pawn break. However, it does bring White close to castling kingside, something 3.Nc3 does not. In most QGD lines, White will play both Nc3 and Nf3 anyway; the order is important only if White desires to avoid specific variations.
White's dark-squared bishop will likely go to g5 after Black plays Nf6, but of course this is not possible immediately because of 3...Qxg5. Moving the bishop to a different square on move 3 would simply lose a tempo if it later went on to g5, so it is best to develop a knight here instead. There are sound systems involving Bf4, but it is not wise to commit to a Bf4 system so early. Thus 3.Nc3 and 3.Nf3 are the most sensible options.

## Theory table

For explanation of theory tables, see theory table and for notation, see algebraic notation. .
1. d4 d5 2. c4 e6 3. Nf3
| | 3 |
| Queen's Gambit Declined Semi-Slav | Nf6 ... | = |
| Semi-Slav Defence | c6 ... | = |
| | Be7 ... | = |
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.
# Queen's Gambit Declined
## 3...Nf6

Here white can take an interesting departure from the typical QGD lines by playing 4. g3, transposing into a main line of the Catalan Opening. This colorful opening can be very aggressive, especially if black opens the long diagonal with ...dxc4 at some point. The piece play white obtains from such an opening of lines is often dangerous for black.
At this point, white's other main continuations are 4. Nc3 and 4. Bg5, though 4. cxd5 is certainly possible.

## Theory table

For explanation of theory tables, see theory table and for notation, see algebraic notation. .
1. d4 d5 2. c4 e6 3. Nf3 Nf6
| | 4. |
| Queen's Gambit Declined, Orthodox Defence | Nc3 ... | = |
| Catalan Opening | g3 ... | = |
| | Bg5 ... | = |
| | cxd5 ... | = |
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.
# Semi-Slav Defence, Anti-Meran Variation
### 6.Qc2

Black will usually want to try developing his dark-squared bishop to a square like b4, and castle.

## Theory table

For explanation of theory tables, see theory table and for notation, see algebraic notation. .
1. d4 d5 2. c4 e6 3. Nf3 Nf6 4. Nc3 c6 5. e3 Nbd7 6. Qc2
| | 6 |
| Anti-Meran Variation | ... Bd6 |
When contributing to this Wikibook, please follow the Conventions for organization.
# Anti-Meran Variation
### 6...Bd6

Black develops his dark-squared bishop, and may castle next.

## Theory table

For explanation of theory tables, see theory table and for notation, see algebraic notation. .
1. d4 d5 2. c4 e6 3. Nf3 Nf6 4. Nc3 c6 5. e3 Nbd7 6. Qc2 Bd6
| | 7 |
| Karpov Variation | Bd3 |
| Shirov–Shabalov Gambit | g4 |
When contributing to this Wikibook, please follow the Conventions for organization.
# Catalan Opening
## Theory table

For explanation of theory tables, see theory table and for notation, see algebraic notation. .
1. d4 d5 2. c4 e6 3. Nf3 Nf6 4.g3
| 4 | 5 | 6 |
| ... dxc4 | Bg2 Be7 | O-O O-O | = |
| ... Be7 | = |
| ... Nbd7 | = |
When contributing to this Wikibook, please follow the Conventions for organization.

## References

* This Chess related article is a stub. Please assist Wikibooks by expanding it.
# Chess Opening Theory/1. e4/1...e5/2. Nc3/2...Nc6
## Vienna Game, Max Lange Defence

White has a couple of good options here, see the theory table below.
The Vienna Gambit 3. f4 exf4 4. Nf3 g5 often leads to White sacrificing a knight on f3 or a bishop on f7.
3. Nf3 transposes to the Three Knights Game.

## Theory table

For explanation of theory tables, see theory table and for notation, see algebraic notation.
1. e4 e5 2.Nc3 Nc6
| | 3 | 4 |
| Three Knights Game | Nf3 Nf6 | | See 2. Nf3 Nc6 3. Nc3 |
| Vienna Game | Bc4 Nf6 | d3 Na5 | = |
| Paulsen Variation | g3 Bc5 | Bg2 d6 | = |
| Vienna Gambit | f4 exf4 | Nf3 g5 | ∞ |
When contributing to this Wikibook, please follow the Conventions for organization.
# Vienna Gambit
## Theory table

For explanation of theory tables, see theory table and for notation, see algebraic notation. .
1. e4 e5 2.Nc3 Nc6 3. f4
| 3 | 4 |
| f4 exf4 | Nf3 g5 | = |
| ... Bc5 | Nf3 d6 | += |
| ... d6 | |
When contributing to this Wikibook, please follow the Conventions for organization.

## References

* This Chess related article is a stub. Please assist Wikibooks by expanding it.
# Chess Opening Theory/1. e4/1...e5/2. Nc3/2...Bc5/3. Na4
## 3. Na4?!

This move attacks the bishop, but it allows 3...Bxf2+!, a sacrifice, which leads to wild complications favouring Black after 4. Kxf2 Qh4+ 5. Ke3 Qf4+ 6. Kd3 d5, as in the famous Immortal Draw game between Hamppe and Meitner.
When contributing to this Wikibook, please follow the Conventions for organization.
# Chess Opening Theory/1. e4/1...e5/2. Ke2/2...Ke7
## 2...Ke7?! - The Double Bongcloud

The Double Bongcloud is a chess opening that involves moving the king to e2 (or e7 for black) on the second move, after playing e4 (or e5 for black) on the first move⁴. It's considered one of the worst openings in chess, as it exposes the king to danger and loses the right to castle⁴.
The sequence of moves is as follows:
1. e4 e5 2. Ke2 Ke7
This opening is known as the Double Bongcloud because both players move their kings on the second move¹²³⁵. This opening is considered self-destructive as it breaks practically all of the principles you're taught about chess openings from day one: it doesn't fight for the center, it leaves the king exposed and it wastes time, all while eliminating the possibility of castling and managing to impede the development of the bishop and queen¹.
Despite its reputation, the Double Bongcloud has been played by grandmasters like Magnus Carlsen and Hikaru Nakamura in a game that was intentionally drawn by threefold repetition¹³⁵. This particular sequence they used is known as the "Hotbox Variation" of the Double Bongcloud¹³⁵.
Remember, chess is a game of strategy and every move has potential consequences. It's up to the player's judgment to decide whether a move aligns with their overall game strategy. The Double Bongcloud offers an unconventional approach to the game, but it also requires careful planning and execution¹²⁴.
1.e4 e5 2.Ke2? Ke7?!
# Chess Opening Theory/1. e4/1...e5/2. Nc3/2...Bc5
## Anderssen Defence

This move allows White to immediately go after the bishop with 3. Na4?!, but that allows Black to take advantage of the undefended a4-knight using the Hamppe-Meitner sacrifice 3...Bxf2+!, named after the Immortal Draw (Hamppe-Meitner, Vienna 1872) Kxf2 Qh4+. It is premature to derail the knight on the rim like this when Black doesn't have any other piece out.
The game continued: Kxf2 Qh4+ Ke3 Qf4+ Kd3 d5 Kc3 Qxe4 Kb3 Na6 a3 Qxa4+!! Kxa4 Nc5+ Kb4 a5+! Kxc5 Ne7 Bb5+ Kd8 Bc6 b6+ Kb5 Nxc6 Kxc6 Bb7+ Kb5 Ba6+ Kc6 Bb7+. 1/2-1/2.
The simple 3. Nf3 gives White a slight advantage, though.

## Theory table

For explanation of theory tables, see theory table and for notation, see algebraic notation. .
1. e4 e5 2. Nc3 Bc5
| | 3 |
| | Nf3! |
| | f4 |
| Hamppe-Meitner Motif | Na4?! |
When contributing to this Wikibook, please follow the Conventions for organization.

## References

* ↑ http://www.chessgames.com/perl/chessgame?gid=1250160
* ↑ Goeller, Michael. "The Hamppe - Meitner Motif". Kenilworth Chess Club. Retrieved 10 August 2015.
* Kasparov, Garry, & Keene, Raymond 1989 Batsford chess openings 2. ISBN 0-8050-3409-9.
# Vienna Gambit

The accepted line of the Vienna Gambit is a popular opening and can be traced all the way back to the 19th century, used by top players like Wilhelm Steinitz and Emanuel Lasker. It frequently leads to a wild game and White gains a strong center at the expense of losing the ability to castle allowing Black to make serious inroads into the White Kingside. Oftentimes, Black will force White's king to move up the chessboard in their attack. With perfect play, Black most likely holds a small advantage.
Here, White only has two serious replies: 4. Nf3 (Knight Variation) or 4. d4 (Steinitz Gambit) to defend Black's incoming Qh4+.

## Theory table

For explanation of theory tables, see theory table and for notation, see algebraic notation. .
1. e4 e5 2. Nc3 Nc6 3. f4 exf4
| | 4 | 5 | 6 |
| 1 | Nf3 g5 | d4 g4 | Ne5 Nxe5 | -/+ |
| 2 | ... | g3 g4 | Nh4 f3 | =/+ |
| 3 | d4 Qh5+ | Ke2 d6 | Nf3 Bg4 | ∞ |
When contributing to this Wikibook, please follow the Conventions for organization.
# Vienna Game
### 3. Bc4

This sequence of opening moves is, objectively speaking, not an effective way for white to maintain any advantage. White's development of these two pieces is considered unharmonious. In particular, the bishop on c4 is prone to being attacked. However in practice, black may respond with the 'copycat variation' 3... Bc5, and after 4.Qg4, white has a definite advantage. From there, white can play with a plan of f4 if there is no knight on f3 blocking the f-pawn. If for example black plays 3... Nf6 4.d3 Na5, then white can consider 5.Nge2, which creates imbalances in the position and reserves the possibility of f4 later.

## Theory table

For explanation of theory tables, see theory table and for notation, see algebraic notation. .
1. e4 e5 2.Nc3 Nc6 3.Bc4
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| Bc4 Nf6 | d3 Na5 | Nge2 Nxc4 | dxc4 Bc5 | | | | = |
| ... Bc5 | Nf3 Nf6 | d3 d6 | Bg5 h6 | | | | = |
| ... Bc5 | Qg4 Qf6 | Nd5 Qxf2+ | Kd1 Kf8 | Nh3 h5 | Qg5 Qd4 | d3 Be7 | +/= |
When contributing to this Wikibook, please follow the Conventions for organization.
# Digital Signal Processing/Impulse Response

Let's say that we have the following block diagram:
h[n] is known as the 'Impulse Response of the digital system. We will talk about impulse responses here in this chapter.

## Impulse Function

In digital circuits, we use a variant of the continuous-time delta function. This delta function (δ[n]) has a value of 1 at n = 0, and a value of 0 everywhere else.
If we set x[n] = δ[n], then the output y[n] will be the response of the system to an impulse, or simply, the "Impulse Response".
We can time-shift the impulse function as such:
We can add time-shifted values of the impulse function to create an Impulse Train:

## Impulse Response

If we have a difference equation relating y[n] to x[n], we can find the impulse response difference equation by replacing every y with an h, and every x with a δ:
And by plugging in successive values for n, we can calculate the impulse response to be:

## Output

Now, let's say that we have a given impulse response, h[n], and we have a given input x[n] as such:
We can calculate the output, y[n], as the convolution of those 2 quantities:
# Digital Signal Processing/Fast Fourier Transform (FFT) Algorithm

The Fourier Transform (FFT) is an algorithm used to calculate a Discrete Fourier Transform (DFT) using a smaller number of multiplications.

# Cooley–Tukey algorithm

The Cooley–Tukey algorithm is the most common fast Fourier transform (FFT) algorithm. It breaks down a larger DFT into smaller DFTs. The best known use of the Cooley–Tukey algorithm is to divide a N point transform into two N/2 point transforms, and is therefore limited to power-of-two sizes.
The algorithm can be implemented in two different ways, using the so-called:
* Decimation In Time (DIT)
* Decimation In Frequency (DIF)

## Circuit diagram

The following picture represents a 16-point DIF FFT circuit diagram:
In the picture, the coefficients are given by:
       $W^{k}=e^{-j\cdot k/N\cdot 2\pi }$
where N is the number of points of the FFT. They are evenly spaced on the lower half of the unit circle and $W^{0}=1$.

## Test script

The following python script allows to test the algorithm illustrated above:
It has a special parameter, coefficientBitNb, which allows to determine the calculation results for a circuit using only integer numbers.
# Digital Signal Processing/Hilbert Transform
## Definition

The Hilbert transform is used to generate a complex signal from a real signal. The Hilbert transform is characterized by the impulse response:
    $h(t)={1 \over (\pi t)}$
The Hilbert Transform of a function x(t) is the convolution of x(t) with the function h(t), above. The Hilbert Transform is defined as such:
[Hilbert Transform]
    ${\widehat {x}}(t)={\mathcal {H}}\{x\}(t)=(h*x)(t)={\frac {1}{\pi }}\int _{-\infty }^{\infty }{\frac {x(\tau )}{t-\tau }}\,d\tau .\,$
We use the notation ${\widehat {x}}(t)$ to denote the Hilbert transformation of x(t).
# Digital Signal Processing/Infinite Input Filtering

Filtering a data input that is infinite in length can be a tricky task for any computer to manage, and DSP engineers have identified two techniques for breaking down an infinite input into manageable chunks for filtering.

## "Infinite Input"

infinite input response (IIR) filters are structures that use a feedback element to help filter data. An IIR filter has a transfer function of the form:
    $G(z)={\frac {\prod (a_{n}-z^{-1})}{\prod (b_{m}-z^{-1})}}$
The constants a$_n$ are known as the zeros of the transfer function, and the b$_m$ terms are known as the poles of the transfer function. FIR filters, by comparison do not have poles.
IIR filters are named as such because the filter does not stop responding once the input has stopped, but instead the feedback element will continue to input values into the filter structure for processing after the input has stopped.

## IIR vs FIR Filters

| | FIR | IIR |
| Stability | Always BIBO Stable | May not be stable |
| Efficiency | Not efficient | Very Efficient |
| Phase | May have linear phase | phase not linear |
An FIR filter will have an order that is a significantly higher than the order of an equivalent IIR filter. This means that FIR filters need more complexity and more components then IIR filters to complete the same task. However, IIR filters have a potential for instability, which requires more analysis.