The vertical bar ( | ) is a glyph with various uses in mathematics, computing, and typography. It has many names, often related to particular meanings: Sheffer stroke (in logic), verti-bar, vbar, stick, vertical line, vertical slash, bar, pike, or pipe, and several variants on these names. It is occasionally considered an allograph of broken bar (see below).
The vertical bar is used as a mathematical symbol in numerous ways:
- absolute value: , read "the absolute value of x"
- cardinality: , read "the cardinality of the set S"
- conditional probability: , reads "the probability of X given Y"
- determinant: , read "the determinant of the matrix A". When the matrix entries are written out, the determinant is denoted by surrounding the matrix entries by vertical bars instead of the usual brackets or parentheses of the matrix, as in .
- distance: , denoting the shortest distance between point to line , so line is perpendicular to line
- divisibility: , read "a divides b" or "a is a factor of b", though Unicode also provides special 'divides' and 'does not divide' symbols (U+2223 and U+2224: ∣, ∤)
- evaluation: , read "f of x, evaluated at x equals 4" (see subscripts at Wikibooks)
- length: , read "the length of the string s"
- norm: , read "the norm of the (greater-than-one-dimensional) vector " (note that absolute value is a one-dimensional norm), although a double vertical bar (see below) is more often used to avoid ambiguity.
- order: , read "the order of the group G"
- restriction: , denoting the restriction of the function , with a domain that is a superset of , to just
- set-builder notation: , read "the set of x such that x is less than two". Often, a colon ':' is used instead of a vertical bar
- the Sheffer stroke in logic: , read "a nand b"
- subtraction: , read "f(x) from b to a", denoting . Used in the context of a definite integral with variable x.
- A vertical bar can be used to separate variables from fixed parameters in a function, for example
The double vertical bar, , is also employed in mathematics.
- parallelism: , read "the line is parallel to the line "
- Norm: , read "the norm of the vector x". People sometimes use two single bars in analogy to the absolute value, which is a one-dimensional norm.
- Propositional truncation (a type former that truncates a type down to a mere proposition in homotopy type theory): for any (read "term of type ") we have  (here reads "image of in " and reads "propositional truncation of ")
In LaTeX mathematical mode the ASCII vertical bar produces a vertical line, and
\| creates a double vertical line (
a | b \| c is set as ). This has different spacing from
\parallel, which are relational operators:
a \mid b \parallel c is set as . See below about LaTeX in text mode.
- : the quantum physical state
- : the dual state corresponding to the state above
- : the inner product of states and
- supergroups in physics are denoted G(N|M), which reads "G, M vertical bar N"; here G denotes any supergroup, M denotes the bosonic dimensions, and N denotes the Grassmann dimensions
A pipe is an inter-process communication mechanism originating in Unix, which directs the output (standard out and, optionally, standard error) of one process to the input (standard in) to another. In this way, a series of commands can be "piped" together, giving users the ability to quickly perform complex multi-stage processing from the command line or as part of a Unix shell script ("bash file"). In most Unix shells (command interpreters), this is represented by the vertical bar character. For example:
where the output from the "grep" process is piped to the "more" process.
The same "pipe" feature is also found in later versions of DOS and Microsoft Windows.
This usage has led to the character itself being called "pipe".
Specifically, in C and other languages following C syntax conventions, such as C++, Perl, Java and C#,
a | b denotes a bitwise or; whereas a double vertical bar
a || b denotes a (short-circuited) logical or. Since the character was originally not available in all code pages and keyboard layouts, ANSI C can transcribe it in form of the trigraph
??!, which, outside string literals, is equivalent to the
Although not as common as commas or tabs, the vertical bar can be used as a delimiter in a flat file. Examples of a pipe-delimited standard data format are LEDES 1998B and HL7. It is frequently used because vertical bars are typically uncommon in the data itself.
Similarly, the vertical bar may see use as a delimiter for regular expression operations (e.g. in sed). This is useful when the regular expression contains instances of the more common forward slash (
/) delimiter; using a vertical bar eliminates the need to escape all instances of the forward slash. However, this makes the bar unusable as the regular expression "alternative" operator.
<personal-name> ::= <name> | <initial>
In calculi of communicating processes (like pi-calculus), the vertical bar is used to indicate that processes execute in parallel.
The pipe in APL is the modulo or residue function between two operands and the absolute value function next to one operand.
In LaTeX text mode, the vertical bar produces an em dash (—). The
\textbar command can be used to produce a vertical bar.
Phonetics and orthography
In the Khoisan languages and the International Phonetic Alphabet, the vertical bar is used to write the dental click (ǀ). A double vertical bar is used to write the alveolar lateral click (ǁ). Since these are technically letters, they have their own Unicode code points in the Latin Extended-B range: U+01C0 for the single bar and U+01C1 for the double bar.
Some Northwest and Northeast Caucasian languages written in the Cyrillic script have a vertical bar called palochka (Russian: палочка, "little stick"), indicating the preceding consonant is an ejective.
Longer single and double vertical bars are used to mark prosodic boundaries in the IPA.
In Sanskrit and other Indian languages, a single vertical mark, a danda, has a similar function as a period (full stop). Two bars || (a 'double danda') is the equivalent of a pilcrow in marking the end of a stanza, paragraph or section. The danda has its own Unicode code point, U+0964.
A double vertical bar ⟨||⟩ or ⟨ǁ⟩ is the standard caesura mark in English literary criticism and analysis. It marks the strong break or caesura common to many forms of poetry, particularly Old English verse.
In the Geneva Bible and early printings of the King James Version, a double vertical bar is used to mark margin notes that contain an alternative translation from the original text. These margin notes always begin with the conjunction "Or". In later printings of the King James Version, the double vertical bar is irregularly used to mark any comment in the margins.
In music, when writing chord sheets, single vertical bars associated with a colon (|: A / / / :|) represents the beginning and end of a section (ie. Intro, Interlude, Verse, Chorus) of music. Single bars can also represent the beginning and end of measures (|: A / / / | D / / / | E / / / :|). A double vertical bar associated with a colon can represent the repeat of a given section (||: A / / / :|| - play twice).
Solid vertical bar vs broken bar
Many early video terminals and dot-matrix printers rendered the vertical bar character as the allograph broken bar (¦). This may have been to distinguish the character from the lower-case 'L' and the upper-case 'I' on these limited-resolution devices, and to make a vertical line of them look more like a horizontal line of dashes.
In the early 1990's the definition of ASCII was updated to define the code 7C as being a solid bar, not a broken one.
Some variants of EBCDIC included both versions of the character as different code points. The broad implementation of the extended ASCII ISO/IEC 8859 series in the 1990s also made a distinction between the two forms. This was preserved in Unicode as a separate character at u+00A6 BROKEN BAR (the term "parted rule" is used sometimes in Unicode documentation). Many fonts draw the characters the same (both are solid vertical bars, or both are broken vertical bars). The broken bar does not appear to have any clearly identified uses distinct from the vertical bar. In non-computing use — for example in mathematics, physics and general typography — the broken bar is not an acceptable substitute for the vertical bar.
Many keyboards with US or US-International layout display the broken bar on a keycap even though the solid vertical bar character is produced. This includes many German QWERTZ keyboards.
Unicode code points
These glyphs are encoded in Unicode as follows:
- U+007C | VERTICAL LINE (HTML
|) (single vertical line)
- U+00A6 ¦ BROKEN BAR (HTML
¦) (single broken line )
- U+2016 ‖ DOUBLE VERTICAL LINE (HTML
‖) (double vertical line ( ): used in pairs to indicate norm)
- U+FF5C ｜ FULLWIDTH VERTICAL LINE (HTML
｜) (Fullwidth form)
- U+2225 ∥ PARALLEL TO (HTML
- U+01C0 ǀ LATIN LETTER DENTAL CLICK (HTML
- U+01C1 ǁ LATIN LETTER LATERAL CLICK (HTML
- U+2223 ∣ DIVIDES (HTML
- U+2502 │ BOX DRAWINGS LIGHT VERTICAL (HTML
│) (and various other box drawing characters in the range U+2500 to U+257F)
- U+0964 । DEVANAGARI DANDA (HTML
- U+0965 ॥ DEVANAGARI DOUBLE DANDA (HTML
Code pages and other historical encodings
|Code pages, ASCII, ISO/IEC, EBCDIC, Shift-JIS, etc.||Vertical bar ('|')||Broken bar ('¦')|
CP437, CP667, CP720, CP737, CP790, CP819, CP852, CP855, CP860, CP861, CP862, CP865, CP866, CP867, CP869, CP872, CP895, CP932, CP991
|CP850, CP857, CP858||221 (DDh)|
|ISO/IEC 8859-1, -7, -8, -9, -13,
CP1250, CP1251, CP1252, CP1253, CP1254, CP1255, CP1256, CP1257, CP1258
|ISO/IEC 8859-2, -3, -4, -5, -6, -10, -11, -14, -15, -16||none|
|EBCDIC CCSID 37||79 (4Fh)||106 (6Ah)|
|EBCDIC CCSID 500||187 (BBh)|
- Univalent Foundations Program (2013). Homotopy Type Theory: Univalent Foundations of Mathematics (GitHub version) (PDF). Institute for Advanced Study. p. 108.
- Univalent Foundations Program (2013). Homotopy Type Theory: Univalent Foundations of Mathematics (print version). Institute for Advanced Study. p. 450.
- Larus Thorlacius, Thordur Jonsson (eds.), M-Theory and Quantum Geometry, Springer, 2012, p. 263.
- "virgula, n.", Oxford English Dictionary, 1st ed., Oxford: Oxford University Press, 1917.
- Jim Price (2010-05-24). "ASCII Chart: IBM PC Extended ASCII Display Characters". Retrieved 2012-02-23.
- Jukka "Yucca" Korpela (2006-09-20). "Detailed descriptions of the characters". Retrieved 2012-02-23.