text:
Seabed Arms Control Treaty

The Seabed Arms Control Treaty (or Seabed Treaty, formally the Treaty on the Prohibition of the Emplacement of Nuclear Weapons and Other Weapons of Mass Destruction on the Sea-Bed and the Ocean Floor and in the Subsoil thereof) is a multilateral agreement between the United States, Soviet Union (now Russia), United Kingdom, and 91 other countries banning the emplacement of nuclear weapons or "weapons of mass destruction" on the ocean floor beyond a 12-mile (22.2 km) coastal zone. It allows signatories to observe all seabed "activities" of any other signatory beyond the 12-mile zone to ensure compliance.

Like the Antarctic Treaty, the Outer Space Treaty, and the Nuclear-Weapon-Free Zone treaties, the Seabed Arms Control Treaty sought to prevent the introduction of international conflict and nuclear weapons into an area hitherto free of them. Reaching agreement on the seabed, however, involved problems that were not met in framing the other two agreements.

History
In the 1960s, advances in the technology of oceanography and greatly increased interest in the vast and virtually untapped resources of the ocean floor led to concern that the absence of clearly established rules of law might lead to strife. There were concurrent fears that nations might use the seabed as a new environment for military installations, including those capable of launching nuclear weapons.

In keeping with a proposal submitted to the U.N. Secretary General by Ambassador Pardo of Malta in August 1967, the U.N. General Assembly, on 18 December 1967, established an ad hoc committee to study ways of reserving the seabed for peaceful purposes, with the objective of ensuring "that the exploration and use of the seabed and the ocean floor should be conducted in accordance with the principles and purposes of the Charter of the United Nations, in the interests of maintaining international peace and security and for the benefit of all mankind." The committee was given permanent status the following year. At the same time, seabed-related military and arms control issues were referred to the Eighteen Nation Committee on Disarmament (ENDC) and its successor, the Conference of the Committee on Disarmament (CCD). In a message of 18 March 1969, President Nixon said the American delegation to the ENDC should seek discussion of the factors necessary for an international agreement prohibiting the emplacement of weapons of mass destruction on the seabed and ocean floor and pointed out that an agreement of this kind would, like the Antarctic and Outer Space treaties, "prevent an arms race before it has a chance to start."

List of parties
The Seabed Arms Control Treaty was opened for signature in Washington, London, and Moscow on 11 February 1971. It entered into force 18 May 1972, when the United States, the United Kingdom, the Soviet Union, and more than 22 nations had deposited instruments of ratification. As of October 2018, 94 current states are parties to the treaty, while another 21 have signed the treaty but have not completed ratification.

Multiple dates indicate the different days in which states submitted their signature or deposition, which varied by location. This location is noted by: (L) for London, (M) for Moscow, and (W) for Washington.

 * Notes

State with limited recognition, abiding by treaty
The Republic of China (Taiwan), which is currently only recognized by, deposited their instruments of ratification of the treaty prior to the United States' decision to switch their recognition of the sole legitimate government of China from the Republic of China (ROC) to the People's Republic of China (PRC) in 1971. When the PRC subsequently ratified the treaty, they described the ROC's ratification as "illegal". The ROC has committed itself to continue to adhere to the requirements of the treaty, and the United States has declared that they still consider them to be "bound by its obligations".

Non-signatory states
The remaining UN member states and UN observer states, which have not signed the treaty, are:

 * 🇦🇱 Albania
 * 🇦🇩 Andorra
 * 🇦🇴 Angola
 * 🇦🇲 Armenia
 * 🇦🇿 Azerbaijan
 * 🇧🇭 Bahrain
 * 🇧🇩 Bangladesh
 * 🇧🇧 Barbados
 * 🇧🇿 Belize
 * 🇧🇹 Bhutan
 * Brunei
 * 🇧🇫 Burkina Faso
 * 🇹🇩 Chad
 * 🇨🇱 Chile
 * 🇰🇲 Comoros
 * Democratic Republic of the Congo
 * 🇭🇷 Croatia
 * 🇩🇯 Djibouti
 * 🇩🇲 Dominica
 * 🇪🇨 Ecuador
 * 🇪🇬 Egypt
 * 🇸🇻 El Salvador
 * 🇪🇷 Eritrea
 * 🇪🇪 Estonia
 * 🇫🇯 Fiji
 * 🇫🇷 France
 * 🇬🇦 Gabon
 * Georgia
 * 🇬🇩 Grenada
 * 🇬🇾 Guyana
 * 🇭🇹 Haiti
 * 🇮🇩 Indonesia
 * 🇮🇱 Israel
 * 🇰🇿 Kazakhstan
 * 🇰🇪 Kenya
 * 🇰🇮 Kiribati
 * 🇰🇵 North Korea
 * 🇰🇼 Kuwait
 * 🇰🇬 Kyrgyzstan
 * 🇱🇹 Lithuania
 * 🇲🇼 Malawi
 * 🇲🇻 Maldives
 * 🇲🇭 Marshall Islands
 * 🇲🇷 Mauritania
 * 🇫🇲 Micronesia
 * 🇲🇩 Moldova
 * 🇲🇨 Monaco
 * 🇲🇿 Mozambique
 * 🇳🇦 Namibia
 * 🇳🇷 Nauru
 * 🇳🇬 Nigeria
 * North Macedonia
 * 🇴🇲 Oman
 * 🇵🇰 Pakistan
 * 🇵🇼 Palau
 * 🇵🇬 Papua New Guinea
 * 🇵🇪 Peru
 * 🇱🇨 Saint Lucia
 * 🇼🇸 Samoa
 * 🇸🇲 San Marino
 * 🇸🇴 Somalia
 * 🇸🇸 South Sudan
 * 🇱🇰 Sri Lanka
 * 🇸🇷 Suriname
 * Syria
 * 🇹🇯 Tajikistan
 * 🇹🇭 Thailand
 * Timor Leste
 * 🇹🇴 Tonga
 * 🇹🇹 Trinidad and Tobago
 * 🇹🇲 Turkmenistan
 * 🇹🇻 Tuvalu
 * 🇺🇬 Uganda
 * 🇦🇪 United Arab Emirates
 * 🇺🇿 Uzbekistan
 * 🇻🇺 Vanuatu
 * 🇻🇪 Venezuela
 * 🇿🇼 Zimbabwe

title: Seabed Arms Control Treaty


text:
Ternary conditional operator

In computer programming, the ternary conditional operator is a ternary operator that is part of the syntax for basic conditional expressions in several programming languages. It is commonly referred to as the conditional operator, ternary if, or inline if (abbreviated iif). An expression a ? b : c evaluates to b if the value of a is true, and otherwise to c. One can read it aloud as "if a then b otherwise c". The form a ? b : c is the most common, but alternative syntax do exist; for example, Raku uses the syntax a ?? b !! c to avoid confusion with the infix operators ? and !, whereas in Visual Basic .NET, it instead takes the form If(a, b, c).

It originally comes from CPL, in which equivalent syntax for  was.

Although many ternary operators are possible, the conditional operator is so common, and other ternary operators so rare, that the conditional operator is commonly referred to as the ternary operator.

Variations
The detailed semantics of "the" ternary operator as well as its syntax differs significantly from language to language.

A top level distinction from one language to another is whether the expressions permit side effects (as in most procedural languages) and whether the language provides short-circuit evaluation semantics, whereby only the selected expression is evaluated (most standard operators in most languages evaluate all arguments).

If the language supports expressions with side effects but does not specify short-circuit evaluation, then a further distinction exists about which expression evaluates first—if the language guarantees any specific order (bear in mind that the conditional also counts as an expression).

Furthermore, if no order is guaranteed, a distinction exists about whether the result is then classified as indeterminate (the value obtained from some order) or undefined (any value at all at the whim of the compiler in the face of side effects, or even a crash).

If the language does not permit side-effects in expressions (common in functional languages), then the order of evaluation has no value semantics—though it may yet bear on whether an infinite recursion terminates, or have other performance implications (in a functional language with match expressions, short-circuit evaluation is inherent, and natural uses for the ternary operator arise less often, so this point is of limited concern).

For these reasons, in some languages the statement form variable = condition ? expr1 : expr2; can have subtly different semantics than the block conditional form if (condition) { variable = expr1; } else { variable = expr2; } (in the C language—the syntax of the example given—these are in fact equivalent).

The associativity of nested ternary operators can also differ from language to language. In almost all languages, the ternary operator is right associative so that a == 1 ? "one" : a == 2 ? "two" : "many" evaluates intuitively as a == 1 ? "one" : (a == 2 ? "two" : "many"), but PHP in particular is notoriously left-associative, and evaluates as follows: (a == 1 ? "one" : a == 2) ? "two" : "many", which is rarely what any programmer expects. (The given examples assume that the ternary operator has low operator precedence, which is true in all C-family languages, and many others.)

Equivalence to map
The ternary operator can also be viewed as a binary map operation.

In R—and other languages with literal expression tuples—one can simulate the ternary operator with something like the R expression c(expr1,expr2)[1+condition] (this idiom is slightly more natural in languages with 0-origin subscripts). Nested ternaries can be simulated as c(expr1,expr2,expr3)[which.first((c(cond1,cond2,TRUE))] where the function which.first returns the index of the first true value in the condition vector. Note that both of these map equivalents are binary operators, revealing that the ternary operator is ternary in syntax, rather than semantics. These constructions can be regarded as a weak form of currying based on data concatenation rather than function composition.

If the language provides a mechanism of futures or promises, then short-circuit evaluation can sometimes also be simulated in the context of a binary map operation.

Conditional assignment
?: is used as follows:

condition ? value_if_true : value_if_false

The condition is evaluated true or false as a Boolean expression. On the basis of the evaluation of the Boolean condition, the entire expression returns value_if_true if condition is true, but value_if_false otherwise. Usually the two sub-expressions value_if_true and value_if_false must have the same type, which determines the type of the whole expression. The importance of this type-checking lies in the operator's most common use—in conditional assignment statements. In this usage it appears as an expression on the right side of an assignment statement, as follows:

variable = condition ? value_if_true : value_if_false

The ?: operator is similar to the way conditional expressions (if-then-else constructs) work in functional programming languages, like Scheme, ML, Haskell, and XQuery, since if-then-else forms an expression instead of a statement in those languages.

Usage
The conditional operator's most common usage is to make a terse simple conditional assignment statement. For example, if we wish to implement some C code to change a shop's normal opening hours from 9 o'clock to 12 o'clock on Sundays, we may use

instead of the more verbose

The two forms are nearly equivalent. Keep in mind that the ?: is an expression and if-then-else is a statement. Note that neither the true nor false portions can be omitted from the conditional operator without an error report upon parsing. This contrasts with if-then-else statements, where the else clause can be omitted.

Most of the languages emphasizing functional programming don't need such an operator as their regular conditional expression(s) is an expression in the first place e.g. the Scheme expression (if (> a b) a b) is equivalent in semantics to the C expression (a > b) ? a : b. This is also the case in many imperative languages, starting with ALGOL where it is possible to write result := if a > b then a else b, or Smalltalk (result := (a > b) ifTrue: [ a ] ifFalse: [ b ]) or Ruby (result = if a > b then a else b end, although result = a > b ? a : b works as well).

Note that some languages may evaluate both the true- and false-expressions, even though only one or the other will be assigned to the variable. This means that if the true- or false-expression contain a function call, that function may be called and executed (causing any related side-effects due to the function's execution), regardless of whether or not its result will be used. Programmers should consult their programming language specifications or test the ternary operator to determine whether or not the language will evaluate both expressions in this way. If it does, and this is not the desired behaviour, then an if-then-else statement should be used.

Ada
The 2012 edition of Ada has introduced conditional expressions (using if and case), as part of an enlarged set of expressions including quantified expressions and expression functions. The Rationale for Ada 2012 states motives for Ada not having had them before, as well as motives for now adding them, such as to support "contracts" (also new).

When the value of an if_expression is itself of Boolean type, then the else part may be omitted, the value being True. Multiple conditions may chained using elsif.

ALGOL 68
Both ALGOL 68's choice clauses (if and the case clauses) provide the coder with a choice of either the "bold" syntax or the "brief" form.

if condition then statements [ else statements ] fi "brief" form: ( condition | statements | statements )
 * Single if choice clause:

if condition1 then statements elif condition2 then statements [ else statements ] fi "brief" form: ( condition1 | statements |: condition2 | statements | statements )
 * Chained if choice clause:

APL
With the following syntax, both expressions are evaluated (with value_if_false evaluated first, then condition, then value_if_false):

This alternative syntax provides short-circuit evaluation:

Bash
A true ternary operator only exists for arithmetic expressions:

For strings there only exist workarounds, like e.g.:

Where "$a" = "$b" can be any condition … construct can evaluate. Instead of the … there can be any other bash command. When it exits with success, the first echo command is executed, otherwise the second one is executed.

C
A traditional if-else construct in C is written:

This can be rewritten as the following statement:

As in the if-else construct only one of the expressions 'x' and 'y' is evaluated. This is significant if the evaluation of 'x' or 'y' has side effects. The behaviour is undefined if an attempt is made to use the result of the conditional operator as an lvalue.

A GNU extension to C allows omitting the second operand, and using implicitly the first operand as the second also:

The expression is equivalent to

except that expressions a and x are evaluated only once. The difference is significant if evaluating the expression has side effects. This shorthand form is sometimes known as the Elvis operator in other languages.

C#
In C#, if condition is true, first expression is evaluated and becomes the result; if false, the second expression is evaluated and becomes the result. As with Java only one of two expressions is ever evaluated.

C++
Unlike in C, the precedence of the ?: operator in C++ is the same as that of the assignment operator (= or OP=), and it can return an lvalue. This means that expressions like q ? a : b = c and (q ? a : b) = c are both legal and are parsed differently, the former being equivalent to q ? a : (b = c).

In C++ there are conditional assignment situations where use of the if-else statement is impossible, since this language explicitly distinguishes between initialization and assignment. In such case it is always possible to use a function call, but this can be cumbersome and inelegant. For example, to pass conditionally different values as an argument for a constructor of a field or a base class, it is impossible to use a plain if-else statement; in this case we can use a conditional assignment expression, or a function call. Bear in mind also that some types allow initialization, but do not allow assignment, or even that the assignment operator and the constructor do totally different things. This last is true for reference types, for example:

In this case, using an if-else statement in place of the ?: operator forces the target of the assignment to be declared outside of the branches as a pointer, which can be freely rebound to different objects.

In this simple example, the sout pointer can be initialized to a default value, mitigating the risk of leaving pointers uninitialized or null. Nevertheless, there are cases when no good default exists or creating a default value is expensive. More generally speaking, keeping track of a nullable pointer increases cognitive load. Therefore, only conditional assignment to a reference through the ?: operator conveys the semantics of Initializing a variable from only one of two choices based on a predicate appropriately.

Furthermore, the conditional operator can yield an lvalue, i.e. a value to which another value can be assigned. Consider the following example:

In this example, if the boolean expression argc > 1 yields the value true on line 8, the value 1 is assigned to the variable a, otherwise the value 1 is assigned to the variable b.

CFML
Example of the ?: operator in CFML:

Roughly 50% of the time the randRange expression will return 1 (true) or 0 (false); meaning result will take the value "heads" or "tails" respectively.

Lucee, Railo, and ColdFusion 11-specific
Lucee, Railo, and ColdFusion 11 also implement the Elvis operator, ?: which will return the value of the expression if it is not-null, otherwise the specified default.

Syntax:

Example:

The function f will return value roughly 50% of the time, otherwise will not return anything. If f returns "value", result will take that value, otherwise will take the value "default".

CoffeeScript
Example of using this operator in CoffeeScript:

Returns "false value".

Common Lisp
Assignment using a conditional expression in Common Lisp:

Alternative form:

Crystal
Example of using this operator in Crystal:

Returns "false value".

The Crystal compiler transforms conditional operators to if expressions, so the above is semantically identical to:

Dart
The Dart programming language's syntax belongs to the C family, primarily inspired by languages like Java, C# and JavaScript, which means it has inherited the traditional ?: syntax for its conditional expression.

Example:

Like other conditions in Dart, the expression before the ? must evaluate to a Boolean value.

The Dart syntax uses both ? and : in various other ways, which causes ambiguities in the language grammar. An expression like:

could be parsed as either a "set literal" containing one of two lists or as a "map literal". The language always chooses the conditional expression in such situations.

Dart also has a second ternary operator, the []= operator commonly used for setting values in lists or maps, which makes the term "the ternary operator" ambiguous in a Dart context.

Delphi
In Delphi the IfThen function can be used to achieve the same as ?:. If the System.Math library is used, the IfThen function returns a numeric value such as an Integer, Double or Extended. If the System.StrUtils library is used, this function can also return a string value.

Using System.Math

Using the System.StrUtils library

Usage example:

Unlike a true ternary operator however, both of the results are evaluated prior to performing the comparison. For example, if one of the results is a call to a function which inserts a row into a database table, that function will be called whether or not the condition to return that specific result is met.

F#
In F# the built-in syntax for if-then-else is already an expression that always must return a value.

F# has a special case where you can omit the else branch if the return value is of type unit. This way you can do side-effects, without using an else branch.

But even in this case, the if expression would return unit. You don't need to write the else branch, because the compiler will assume the unit type on else.

FORTH
Since FORTH is a stack-oriented language, and any expression can leave a value on the stack, all IF/ELSE/THEN sequences can generate values:

This word takes 1 parameter on the stack, and if that number is odd, leaves 22. If it's even, 42 is left on the stack.

Fortran
With the additions to the code in the 1995 release, the ternary operator was added to the Fortran compiler as the intrinsic function merge:

Note that both x and y are evaluated before the results of one or the other are returned from the function. Here, x is returned if the condition holds true and y otherwise.

FreeMarker
This built-in exists since FreeMarker 2.3.20.

Used like, fills the same role as the ternary operator in C-like languages.

Go
There is no ternary if in Go, so use of the full if statement is always required.

Haskell
The built-in if-then-else syntax is inline: the expression

has type

The base library also provides the function Data.Bool.bool:

In both cases, no special treatment is needed to ensure that only the selected expression is evaluated, since Haskell is non-strict by default. This also means an operator can be defined that, when used in combination with the $ operator, functions exactly like ?: in most languages:

However, it is more idiomatic to use pattern guards

Java
In Java this expression evaluates to:

Note that Java, in a manner similar to C#, only evaluates the used expression and will not evaluate the unused expression.

Julia
In Julia, "Note that the spaces around ? and : are mandatory: an expression like a?b:c is not a valid ternary expression (but a newline is acceptable after both the ? and the :)."

JavaScript
The conditional operator in JavaScript is similar to that of C++ and Java, except for the fact the middle expression cannot be a comma expression. Also, as in C++, but unlike in C or Perl, it will not bind tighter than an assignment to its right—q ? a : b = c is equivalent to q ? a : (b = c) instead of (q ? a : b) = c.

Just like C# and Java, the expression will only be evaluated if, and only if, the expression is the matching one for the condition given; the other expression will not be evaluated.

Kotlin
Kotlin does not include the traditional ?: ternary operator, however, ifs can be used as expressions that can be assigned, achieving the same results. Note that, as the complexity of one's conditional statement grows, the programmer might consider replacing their if-else expression with a when expression.

Lua
Lua does not have a traditional conditional operator. However, the short-circuiting behaviour of its and and or operators allows the emulation of this behaviour:

This will succeed unless a is logically false (i.e. false or nil); in this case, the expression will always result in b. This can result in some surprising behaviour if ignored.

There are also other variants that can be used, but they're generally more verbose:

Luau, a dialect of Lua, has ternary expressions that look like if statements, but unlike them, they have no end keyword, and the else clause is required. One may optionally add elseif clauses. It's designed to replace the cond and a or b idiom and is expected to work properly in all cases.

Objective-C
condition ? value_if_true : value_if_false

This will set the variable min to 1 because the condition (1 < 2) is true.

Perl
A traditional if-else construct in Perl is written:

Rewritten to use the conditional operator:

The precedence of the conditional operator in Perl is the same as in C, not as in C++. This is conveniently of higher precedence than a comma operator but lower than the precedence of most operators used in expressions within the ternary operator, so the use of parentheses is rarely required.

Its associativity matches that of C and C++, not that of PHP. Unlike C but like C++, Perl allows the use of the conditional expression as an L-value; for example:

will assign $result to either $x or $y depending on the logical expression's boolean result.

The respective precedence rules and associativities of the operators used guarantee that the version absent any parentheses is equivalent to this explicitly parenthesized version:

This is equivalent to the if-else version:

PHP
A simple PHP implementation is this:

Unlike most other programming languages, the conditional operator in PHP is left associative rather than right associative. Thus, given a value of T for arg, the PHP code in the following example would yield the value horse instead of train as one might expect:

The reason is that nesting two conditional operators produces an oversized condition with the last two options as its branches: c1 ? o1 : c2 ? o2 : o3 is really ((c1 ? o1 : c2) ? o2 : o3). This is acknowledged and will probably not change. To avoid this, nested parenthesis are needed, as in this example:

This will produce the result of train being printed to the output, analogous to a right associative conditional operator.

Python
Though it had been delayed for several years by disagreements over syntax, an operator for a conditional expression in Python was approved as Python Enhancement Proposal 308 and was added to the 2.5 release in September 2006. Python's conditional operator differs from the common ?: operator in the order of its operands. The general form is:

This form invites considering x as the normal value and y as an exceptional case.

Prior to Python 2.5 there were a number of ways to approximate a conditional operator (for example by indexing into a two element array), all of which have drawbacks as compared to the built-in operator.

R
The traditional if-else construct in R (which is an implementation of S) is:

If there is only one statement in each block, braces can be omitted, like in C:

The code above can be written in the following non-standard condensed way:

There exists also the function ifelse that allows rewriting the expression above as:

The ifelse function is automatically vectorized. For instance:

Raku
Raku uses a doubled ?? symbol instead of single ? and a doubled !! symbol instead of :

Ruby
Example of using this operator in Ruby:

Returns "false value".

A traditional if-else construct in Ruby is written:

This could also be written as:

These can be rewritten as the following statement:

Rust
Being an expression-oriented programming language, Rust's existing  syntax can behave as the traditional ?: ternary operator does. Earlier versions of the language did have the ?: operator but it was removed due to duplication with if.

Note the lack of semi-colons in the code below compared to a more declarative if...else block, and the semi-colon at the end of the assignment to y.

This could also be written as:

Note that curly braces are mandatory in Rust conditional expressions.

You could also use a match expression:

Scheme
Same as in Common Lisp. Every expression has a value. Thus the builtin if can be used:

Smalltalk
Every expression (message send) has a value. Thus ifTrue:ifFalse: can be used:

SQL
The SQL CASE expression is a generalization of the ternary operator. Instead of one conditional and two results, n conditionals and n+1 results can be specified.

With one conditional it is equivalent (although more verbose) to the ternary operator:

This can be expanded to several conditionals:

MySQL
In addition to the standard CASE expression, MySQL provides an IF function as an extension:

SQL Server
In addition to the standard CASE expression, SQL Server (from 2012) provides an IIF function:

Oracle SQL
In addition to the standard CASE expression, Oracle has a variadic functional counterpart which operates similarly to a switch statement and can be used to emulate the conditional operator when testing for equality.

The DECODE function is, today, deprecated in favour of the standard CASE expression. This can be used in both Oracle SQL queries as well as PL/SQL blocks, whereas decode can only be used in the former.

Swift
The ternary conditional operator of Swift is written in the usual way of the C tradition, and is used within expressions.

Tcl
In Tcl, this operator is available in  expressions only:

Outside of,   can be used for a similar purpose, as it also returns a value:

TestStand
In a National Instruments TestStand expression, if condition is true, the first expression is evaluated and becomes the output of the conditional operation; if false, the second expression is evaluated and becomes the result. Only one of two expressions is ever evaluated.

For example:

Sets the UUTIndex local variable to 3 if TestSocket.Index is 3, otherwise it sets UUTIndex to 0.

Similar to other languages, first_expression and second_expression do not need to be autonomous expressions, allowing the operator to be used for variable assignment:

Verilog
Verilog is technically a hardware description language, not a programming language though the semantics of both are very similar. It uses the ?: syntax for the ternary operator.

This is equivalent to the more verbose Verilog code:

Visual Basic
Visual Basic doesn't use ?: per se, but has a very similar implementation of this shorthand if...else statement. Using the first example provided in this article, it can do:

In the above example, IIf is a ternary function, but not a ternary operator. As a function, the values of all three portions are evaluated before the function call occurs. This imposed limitations, and in Visual Basic .Net 9.0, released with Visual Studio 2008, an actual conditional operator was introduced, using the If keyword instead of IIf. This allows the following example code to work:

Using IIf, person.Name would be evaluated even if person is null (Nothing), causing an exception. With a true short-circuiting conditional operator, person.Name is not evaluated unless person is not null.

Visual Basic Version 9 has added the operator If in addition to the existing IIf function that existed previously. As a true operator, it does not have the side effects and potential inefficiencies of the IIf function.

The syntaxes of the tokens are similar: If([condition], op1, op2) vs IIf(condition, op1, op2). As mentioned above, the function call has significant disadvantages, because the sub-expressions must all be evaluated, according to Visual Basic's evaluation strategy for function calls and the result will always be of type variant (VB) or object (VB.NET). The Ifoperator however does not suffer from these problems as it supports conditional evaluation and determines the type of the expression based on the types of its operands.

Zig
Zig uses if-else expressions instead of a ternary conditional operator:

Result type
Clearly the type of the result of the ?: operator must be in some sense the type unification of the types of its second and third operands. In C this is accomplished for numeric types by arithmetic promotion; since C does not have a type hierarchy for pointer types, pointer operands may only be used if they are of the same type (ignoring type qualifiers) or one is void or NULL. It is undefined behaviour to mix pointer and integral or incompatible pointer types; thus

will result in a compile-time error in most compilers.

?: in style guidelines
Conditional operators are widely used and can be useful in certain circumstances to avoid the use of an if statement, either because the extra verbiage would be too lengthy or because the syntactic context does not permit a statement. For example:

#define MAX(a, b) (((a)>(b)) ? (a) : (b))

or

(The latter example uses the Microsoft Foundation Classes Framework for Win32.)

Initialization
An important use of the conditional operator is in allowing a single initialization statement, rather than multiple initialization statements. In many cases this also allows single assignment and for an identifier to be a constant.

The simplest benefit is avoiding duplicating the variable name, as in Python:

instead of:

More importantly, in languages with block scope, such as C++, the blocks of an if/else statement create new scopes, and thus variables must be declared before the if/else statement, as:

Use of the conditional operator simplifies this:

Furthermore, since initialization is now part of the declaration, rather than a separate statement, the identifier can be a constant (formally, of const type):

Case selectors
When properly formatted, the conditional operator can be used to write simple and coherent case selectors. For example:

Appropriate use of the conditional operator in a variable assignment context reduces the probability of a bug from a faulty assignment as the assigned variable is stated just once as opposed to multiple times.

Programming languages without the conditional operator
The following are examples of notable general-purpose programming languages that don't provide a conditional operator:

 * CoffeeScript
 * Go programming language (although provided by 3rd-party libraries )
 * MATLAB
 * Pascal although Object Pascal / Delphi do have a function IfThen to do the same (with caveats)
 * Rust The if..else construct is an expression and can be used to get the same functionality.
 * Scala
 * XProfan
 * PowerShell (in old versions) an elegant workaround is to use

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

title: Ternary conditional operator


text:
Kariakoo

Kariakoo (Kata ya Kariakoo, in Swahili) is an administrative ward of the Ilala Municipical Council of  the Dar es Salaam Region in Tanzania. Jangwani ward and Mchafukoge ward form the ward's northern and eastern boundaries. The Gerezani and Mchikichini wards border the ward to the south and west respectively. The ward is the home of Simba Sports Club. The name is derived from the swahilization of the British colonial occupation's "Carrier Corps", that used to be based in the area. Today, Kariakoo is mainly known for its large market that spans several city blocks. According to the 2012 census, the ward has a population of 13,780.

Administration
The postal code for the Kariakoo ward is 11106. The ward is divided into the following neighborhoods (Mitaa):

 * Kariakoo Kaskazini
 * Kariakoo Magharibi

 * Kariakoo Mashariki

Government
The ward, like every other ward in the country, has local government offices based on the population served.The Kariakoo Ward administration building houses a court as per the Ward Tribunal Act of 1988, including other vital departments for the administration the ward. The ward has the following administration offices:

 * Kariakoo Ward Police Station located in Karume neighborhood
 * Kariakoo Ward Government Office (Afisa Mtendaji) in Shariff Shamba Neighborhood
 * Kariakoo Ward Tribunal (Baraza La Kata) is a Department inside Ward Government Office

In the local government system of Tanzania, the ward is the smallest democratic unit. Each ward is composed of a committee of eight elected council members which include a chairperson, one salaried officer (with no voting rights), and an executive officer. One-third of seats are reserved for women councillors.

Demographics
The ward serves as the Zaramo people's ancestral home, along with much of the district. As the city developed throughout time, the ward became into a cosmopolitan ward. In total, 13,780 people called the ward home in 2012.

History
In pre-colonial times there was a large village in the area now known as Kariakoo. This village was frequently raided by slave traders. In the latter half of the 19th century, the area became a shamba (farm) belonging to the Sultan of Zanzibar. During German rule, 200 hectares of the shamba were bought by a German businessman named Schoeller, who rented the land to the Africans. At the same time, Dar es Salaam began to grow, and while Europeans built their houses in exclusive areas such as Oyster Bay, Kariakoo became Dar's main African settlement. In 1913, 15.000 out of the total 24.000 African inhabitants of Dar lived in Kariakoo.

In 1914 the German administration bought Kariakoo from Schoeller, with the intent of creating a formal African township according to the general segregationist strategy being applied German East Africa. Concrete houses were built to accommodate the African population, and at that same time the market was established; yet, the advent of First World War delayed its actual opening.

In 1916 the British conquered Dar es Salaam, and Kariakoo was used as a base for the Carrier Corps.In 1923 the market built by the Germans finally began to function. In the 1970s it was substantially restructured.

Economy
Kariakoo hosts an extensive market which is a major contribution to Dar es Salaam's economy. The market is located on 67 Swahili Street. Kariakoo also hosts the Tanzania Postal Bank on Msimbazi Street. Kariakoo is served by the Kamata Train Station located on Msimbazi Street just outside of the ward.Kariakoo has good transport links due to the Dar es Salaam bus rapid transit service offered just outside of the ward.

The Kariakoo Market
It is the busiest and the biggest market that contributes substantially to Dar es Salaam's food provision as well as a small-scale economy. Until recently Kariakoo was also one of the main dala dala "stations" in Dar es Salaam, although this has now been moved to south east of Mawasiliano as the Mawasiliano bus terminal. Seeing how well the business is going. The Kariakoo Market Corp are soon set to open another new market at Mbezi Beach area at the cost of Sh500m.

Education
The ward is home to these educational institutions
 * Mamilo Vocational College

Healthcare
The ward is home to the following health institutions:
 * Kariakoo Dispensary
 * Health Home Dispensary
 * Sokoni Dispensary
 * Kings Health Center, Kariakoo
 * Kariakoo Hospital

title: Kariakoo


text:
Rosey

Rosey can refer to:

People

 * Roosevelt Rosey Brown (1932-2004), American National Football League player
 * Sam Dolan (1884–1944), American college football player and coach
 * Rosey Edeh (born 1966), Canadian television personality
 * Gabrielle Rose Rosey Fletcher (born 1975), American Olympic snowboarder
 * Roosevelt Rosey Grier (born 1932), American National Football League player, actor and minister
 * Rosey E. Pool (1905-1971), Dutch writer, poet, educator and translator
 * William Rosenbaum (1889-1949), American politician
 * Albert Rosey Rowswell (1884-1955), American Major League Baseball radio sportscaster
 * Roosevelt Taylor (born 1937), American former National Football League player
 * Rosey (wrestler) (1970–2017), WWE ring name of professional wrestler Matthew Anoa'i

Other uses

 * Institut Le Rosey, prestigious international boarding school in Switzerland
 * Rosey, Haute-Saône, commune of the Haute-Saône département in France
 * Rosey, Saône-et-Loire, commune of the Saône-et-Loire département in France
 * "Rosey 105", a former branding of American radio station KRSK

title: Rosey


text:
Tonks–Girardeau gas

In physics, a Tonks–Girardeau gas is a Bose gas in which the repulsive interactions between bosonic particles confined to one dimension dominate the system's physics. It is named after physicists Lewi Tonks, who developed a classical model in 1936, and Marvin D. Girardeau who generalized it to the quantum regime. It is not a Bose–Einstein condensate as it does not demonstrate any of the necessary characteristics, such as off-diagonal long-range order or a unitary two-body correlation function, even in a thermodynamic limit and as such cannot be described by a macroscopically occupied orbital (order parameter) in the Gross–Pitaevskii formulation.

The Tonks–Girardeau gas is a particular case of the Lieb–Liniger model.

Definition
A row of bosons all confined to a one-dimensional line cannot pass each other and therefore cannot exchange places. The resulting motion has been compared to a traffic jam: the motion of each boson is strongly correlated with that of its two neighbors. This can be thought of as the large-c limit of the delta Bose gas.

Because the particles cannot exchange places, their behavior might be expected to be fermionic, but their behavior differs from that of fermions in several important ways: the particles can all occupy the same momentum state, which corresponds to neither Bose-Einstein nor Fermi–Dirac statistics. This is the phenomenon of bosonization which happens in 1+1 dimensions.

In the case of a Tonks–Girardeau gas (TG), so many properties of this one-dimensional string of bosons would be sufficiently fermion-like that the situation is often referred to as the 'fermionization' of bosons. Tonks–Girardeau gas matches quantum Nonlinear Schrödinger equation for infinite repulsion, which can be efficiently analyzed by quantum inverse scattering method. This relation helps to study correlation functions. The correlation functions can be described by an Integrable system. In a simple case, it is a Painlevé transcendent. The quantum correlation functions of a Tonks–Girardeau gas can be described by means of classical, completely integrable, differential equations. Thermodynamics of Tonks–Girardeau gas was described by Chen Ning Yang.

Physical realization
The first example of TGs came in 2004 when Paredes and coworkers created an array of such gases using an optical lattice. In a different experiment, Kinoshita and coworkers observed a strongly correlated 1D Tonks–Girardeau gas.

The optical lattice is formed by six intersecting laser beams, which generate an interference pattern. The beams are arranged as standing waves along three orthogonal directions. This results in an array of optical dipole traps where atoms are stored in the intensity maxima of the interference pattern.

The researchers loaded ultracold rubidium atoms into one-dimensional tubes formed by a two-dimensional lattice (the third standing wave is initially off). This lattice is strong so that the atoms have insufficient energy to tunnel between neighboring tubes. The interaction is too low for the transition to the TG regime. For that, the third axis of the lattice is used. It is set to a lower intensity and shorter time than the other two, so that tunneling in this direction is possible. For increasing intensity of the third lattice, atoms in the same lattice well are more and more tightly trapped, which increases the collisional energy. When the collisional energy becomes much bigger than the tunneling energy, the atoms can still tunnel into empty lattice wells, but not into or across occupied ones.

This technique has been used by other researchers to obtain an array of one-dimensional Bose gases in the Tonks-Girardeau regime. However, the fact that an array of gases is observed only allows the measurement of averaged quantities. Moreover, the temperatures and chemical potential between the different tubes are dispersed, which wash out many effects. For instance, this configuration does not allow probing of system fluctuations. Thus it proved interesting to produce a single Tonks–Girardeau gas. In 2011 one team created a single one-dimensional TG gas by trapping rubidium atoms magnetically in the vicinity of a microstructure. Thibaut Jacqmin et al. measured density fluctuations in that single strongly interacting gas. Those fluctuations proved to be sub-Poissonian, as expected for a Fermi gas.

title: Tonks–Girardeau gas


text:
User:Ropers

The very same bleedin eejit that's also behind ropersonline.com.

Charlie Muffin
Charlie Muffin is an article I wrote about my personal all-time favourite film. Not many others have contributed, because the film isn't all that well known. I love it anyway. The film. ('Trying not to get ideas about my writing ;-)

Self-aggrandisement

 * I'm pround I started the Boundary to space article (originally named Edge of space; I later renamed it). The article made it to the Main Page, under the Did you know... section.

I'm also proud of my work on these articles:
 * Color Graphics Adapter (especially this diff; this is now a Featured Article)
 * Difference between sub-orbital and orbital spaceflights (especially everything up to this revision; the article was started by me)
 * Epimenides paradox (especially this diff)
 * Gray's Anatomy (especially this diff)
 * Liar paradox (especially this diff)
 * Reentry (especially this diff)
 * Supercavitation (especially this diff)

title: User:Ropers


text:
A760

A760 may refer to:
 * Motorola A760, a mobile phone produced by Motorola
 * Samsung SPH-A760, another mobile phone by Samsung Telecommunications
 * A760 road, a road between the British towns of Largs and Lochwinnoch

title: A760


text:
Acceptance

Acceptance in human psychology is a person's recognition and assent to the finality of a situation without attempting to change or protest it. This plays out at both the individual and societal level as people experience change.

Types of acceptance
The term acceptance is a noun with various meanings.

Self-acceptance
Self-acceptance is described as the state or ongoing process of striving to be satisfied with one's current self. It is an agreement with oneself to appreciate, validate, and support the self as it is, despite deficiencies and negative past behavior.

Some have trouble accepting themselves because of guilt, trauma, or a perceived lack of motivation. Self-acceptance has an effect on a person mentally, emotionally, within relationships and overall life.

Psychological acceptance
Acceptance is a core element of Acceptance and Commitment Therapy (ACT) and Cognitive Behavioral Therapy (CBT). In this context acceptance is process involves actively contacting psychological internal experiences (emotions, sensations, urges, flashbacks, and other private events) directly, fully, without reacting or becoming defensive. The idea is to accept the things one cannot change, such as psychological experiences, but build the courage to change the things one can.

Social acceptance
Social acceptance as described in the Psychology Dictionary as the acceptance of a person into a group and/or the absence of social disapproval. Essentially whether or not a person fits in with their immediate peer group, such as class, colleagues, or cohort.

Social acceptance can be defined as tolerating and welcoming the differences and diversity in others because most people attempt to look and act like others do in order to fit in. Data shows that those with high self-acceptance scores tend to accept others and feel accepted by others. This concerned is heightened for children and teenagers who tend to desire being accepted by friends.

When it comes to mental disorders, social acceptance plays a big role in recovery. Many people do not understand mental illness, so they are unsure of how to embrace people who have a disease, leaving these people with feelings of isolation in friend groups. Being accepted by a friend and having support can help with mental health and give a healthy sense of self.

Public acceptance
Public acceptance is stated as a general agreement that something is satisfactory or right, or that someone should be included in a group.

An example of public acceptance would be the LGBTQ+ community. It is a very important aspect to the movement because it involves understanding, and inclusion of many individuals with different gender identities, and sexual orientation within the public and society in general.

Cultural acceptance
Cultural acceptance is the ability to accept the individual for their cultural beliefs and their principles. This includes religion, cultural language, identity, and their overall beliefs and/or boundaries.

Parental acceptance
Parental acceptance is described as the affection, nurturance, support or simply the love a parent has for that child and the experience the children can gain from it.

Conditional acceptance

A type of acceptance that requires modification of the initial conditions before the final acceptance is made, is called conditional acceptance, or qualified acceptance. For instance, in a contract involving two parties, adjustments or modifications may be made to ensure it aligns with the satisfaction of both parties. When a person receives an offer and is willing to agree to it, provided that certain changes are made to its terms or certain conditions or events occur, it is referred to as conditional acceptance. In a business contract between a company and an employer, both parties have the option to change and modify the terms until mutual agreement or acceptance of the contract's details is reached.

Expressed acceptance
Expressed acceptance involves making an overt and unambiguous acceptance of the set conditions. For example, a person clearly and explicitly agrees to an offer. They accept the terms without any changes.

Implied acceptance
Implied acceptance refers to a situation where one's intent to consent to the presented conditions is understood or inferred, even if not explicitly stated. Acceptance is implied by an act that indicates a person's assent to the proposed bargain.

Philosophical inquiry
The article Degrees of Acceptance published in The Philosophical Quarterly academic journal argues that there are three conceptual degrees of into which acceptance can be subdivided:

 * 1) The first degree of acceptance is based on voluntary control; taking control and letting thoughts or actions be guided accordingly.
 * 2) The second degree of acceptance is setting aside other potential argument places a point in time
 * 3) The third degree of acceptance is stated as are subject to norms of practical rationality rather than norms of epistemic rationality

title: Acceptance


text:
Talk:Carriacou and Petite Martinique

A note
Kariakoo is now part of Dar es Salaam, the capital of Tanzania. In earlier centuries it was a village, from where slaves were forced to go overseas, as from thousands of other African villages. Kariakoo is mentioned in Ebony, the great book by Ryszard Kapuscinski on Africa and his experiences there. See for example: http://www.takimsholidays.com/coast/daressalaam.asp

Is there a historic relationship between these two places, that would explain their similar names? Were slaves from Kariakoo shipped to Carriacou, giving the island the name of their home village?

 * An interesting hypothesis. If you want to include it in the articles Carriacou and Kariakoo you are going to have to find an authority on the subject who believes that there is a connection between the two names. Wikipedia is not a venue to display original research or theories, except on your user page of course.
 * -JCarriker 23:48, May 21, 2004 (UTC)

There is no relationship between Kariakoo and Carriacou, even though the name suggests so. The first settlers, the Amerindians appropriately referred to Carriacou as the 'Land of Reefs'. For a deeper historic explanation check the following page : http://www.paradise-inn-carriacou.com/carriacou_history.php

Merge proposal
There are huge overlapping between these rwo articles: Carriacou and Carriacou and Petite Martinique. Vanjagenije (talk) 01:57, 14 March 2009 (UTC)
 * Support Carriacou and Petite Martinique forms a single dependency of Grenada, as set out in The Grenada Constitution Order 1973, which states "There shall be a Council for Carriacou and Petit Martinique, which shall be the principal organ of local government in those islands." (It appears that since then Petit Martinique has become more commonly known as Petite Martinique). There may well be a case for individual articles for the two islands at some time in the future, but there doesn't appear to be enough material at present.  Even if individual articles were to become needed, there would still be a requirement for the article at Carriacou and Petite Martinique, as that is the legal entity. Skinsmoke (talk) 14:07, 30 July 2009 (UTC)
 * Comment. Someone suggested merging Petite Martinique to Carriacou and Petite Martinique as well. I've directed that discussion here because it seems the same arguments apply for both islands. Jafeluv (talk) 20:48, 16 August 2009 (UTC)
 * Comment. The islands need their own page because to learn one island and look a other profile of islands on wikipedia (Kylekieran (talk) 08:46, 18 August 2009 (UTC))
 * Carried over from merge discussion at Carriacou Skinsmoke (talk) 03:42, 21 August 2009 (UTC)
 * Yes, merge completed. Cheers, thanks for cleaning up some loose ends. -- Nick Penguin ( contribs ) 04:55, 21 August 2009 (UTC)

 * Comment. I dont i to a person delete the article the island we should vote do we want to keep the article or delete the article. and i dont like to been delete because two hear diffient. (Kylekieran (talk) 21:27, 22 August 2009 (UTC))

Population & area figures
"With its 586 acres (2.37 km2) and population of 900, it is smaller than Carriacou. Petite Martinique is much smaller, comprising about 9.8% of the total area and 30% of the entire population which is estimated at 10,000."

This would put PM's population at 3,000, not 900. Also, earlier in the article, it says Carriacou's population (in 1991 - is there no more recent estimate?) is around 4,500.

The area given for Carriacou Island (alone) is 34 km2. Petite Martinique's area is given as 2.37km2. 2.37 is approximately 6.5% of the total area, not 9.8% as stated in the article.

In short, somebody has seriously messed up with these figures. 92.15.204.69 (talk) 04:22, 27 March 2013 (UTC)
 * Agreed. I found a good reference at Grenada's government homepage. Interestingly enough they referred to this page, which also has an updated population figure. I nevertheless went with the first source's older data since the validity of the governmental site is much more evident than that of the latter site. -- Lejman (talk) 15:40, 21 December 2014 (UTC)

External links modified
Hello fellow Wikipedians,

I have just modified 2 one external links on Carriacou and Petite Martinique. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:
 * Added archive https://web.archive.org/web/20080428031446/http://www.professionaltravelguide.com:80/carriacou-island/Destinations-140751/ to http://www.professionaltravelguide.com/carriacou-island/Destinations-140751#catbk100014
 * Added archive https://web.archive.org/web/20080906124406/http://www.paradise-inn-carriacou.com/grenada_national_parks.php to http://www.paradise-inn-carriacou.com/grenada_national_parks.php

When you have finished reviewing my changes, please set the checked parameter below to true or failed to let others know (documentation at ).

Cheers.— InternetArchiveBot  (Report bug) 05:46, 16 November 2016 (UTC)

Steele
What happened to the Steele reference? The link doesn't go anywhere. 21:39, 3 March 2020 (UTC)

title: Talk:Carriacou and Petite Martinique


text:
Cochin International Airport

Cochin International Airport (locally referred to as Nedumbassery Airport, Kochi Airport or Ernakulam Airport) is an international airport serving the city of Kochi, Kerala, in southwestern India. It is located at Nedumbassery, about 25 km northeast of the city center. The airport is the first of its kind to be developed under a public-private partnership (PPP) model in India. This project was funded by nearly 10,000 non-resident Indians from 32 countries. It is the busiest and largest airport in the state of Kerala and the fourth busiest (in terms of International passengers) airport in India. , the airport caters to more than 63% of the total air passenger traffic in Kerala. It is the third-busiest airport in India in terms of international traffic, and the eighth-busiest overall.

In fiscal year 2023–2024, the airport handled more than 10.3 million passengers with a total of 67,469 aircraft movements. As of 2024, the airport is served by over 25 airline companies, carrying passengers to 31 international destinations and 22 domestic destinations.

The airport operates three passenger terminals and one cargo terminal with a total area of over 225000 m2. In 2015, the airport became the world's first fully solar-powered airport with the inauguration of a dedicated solar plant. For this entrepreneurial vision, the airport won the coveted Champion of the Earth award in 2018, the highest environmental honour instituted by the United Nations. The airport was awarded The Best Airport in Asia-Pacific in 2020 (5 to 15 million passengers per year) by Airports Council International.

History
Kochi's airport began as an airstrip on Willingdon Island, built in 1936 by the Kingdom of Cochin, intended for transporting officials involved in the development of the Cochin Port. The Kingdom of Cochin allowed the British, who ruled India at the time, to convert the airstrip into a military airport for use by the Indian Navy during World War II. The Royal Navy chose it as a strategic site for their headquarters in Southern India and as an air station cum landing craft and seaplane base. The military facility hosted naval fighter planes and was intended to thwart possible Japanese air raids. A small naval unit set up operations just two days before the outbreak of World War II.

After India achieved dominion status and the merger of the Kingdom of Cochin with India, the Indian Navy operated the airport, though it permitted civilian aircraft to use the facility. The Gulf economic boom of the 1980s made it necessary to develop international connections to Kochi in the interests of expatriates working in the Middle East.

Construction

The original proposal for the airport outlined an estimated cost of inr 1000000000 and an expected date of commission in 1997. Approval was granted in May 1993. The funding was envisaged to be from interest-free loans from non-resident Indians working abroad, donations from industrial undertakings, exporters, cooperative societies and loans from the state government. A body called the Cochin International Airport Society, under the chairmanship of the Chief Minister of Kerala K. Karunakaran, was registered in July 1993 to execute the project. To better fund mobilisation, as well as an administrative convenience, a public limited company under the name Cochin International Airport Ltd. (CIAL) was registered in March 1994 with an authorised capital of inr 900000000.

In 1996, E. K. Nayanar took over as chairman of the CIAL project. The construction picked up momentum during this period and Nayanar ensured that the airport project received special attention from the State Government and gave his unstinted support to CIAL. By 1997, substantial land was taken into CIAL possession through negotiated settlements. A total of 1213 acre of land was acquired for the construction of the airport. Approximately 2,300 landowners and 872 families were resettled under a rehabilitation package. Major electric lines and an irrigation canal had to be diverted. The facility was formally inaugurated by the then President of India, K. R. Narayanan on 25 May 1999 and the first commercial service began on 10 June 1999. The operations from the old naval airport were moved to CIAL on 1 July 1999.

Phase 1
The airport had 18580 m2 of floor space at its inauguration. CIAL envisioned four phases of expansion over 20 years, the third phase of which was completed in 2009. The original airport terminal was envisioned to handle just 100 passengers at a time. However, by 2001, the international passenger traffic was growing, making it necessary to redevelop the terminal.

In 2002, the floor area for the international operations of the original building rose due to the completion of a separate domestic terminal, shifting all domestic operations there.

Phase 2

With a rising number of airlines operating at the airport, CIAL decided to construct an exclusive terminal for domestic operations, namely Terminal 2, making the international one Terminal 1, increasing the floor space for international operations by 37161 m2. As part of the second phase of the expansion plans, an airline center complex of 7500 m2 was constructed on the western side of the terminal to accommodate the airline and CIAL's administrative offices. The cargo terminal was also expanded in the second phase.

Phase 3
Work on the third phase was intended to accommodate 5 million passenger movements annually and was started in 2007. The third phase involved the commissioning of a central block, connecting the domestic and international terminals and enlarging the airside area to accommodate more gates and waiting areas along with increased shopping areas. This increased the built-up area by another 29700 m2. The airside area of the international arrivals and departures blocks were integrated and glass walls were installed to allow for more natural light. The runway was re-surfaced in 2008. The number of parking areas was increased from 15 to 24, including three dedicated for cargo airlines. The third phase also completed the expansion of the cargo village and a second aircraft taxiway to the MRO facility.

Phase 4
The fourth phase of expansion was originally planned to upgrade the domestic terminal, which has remained untouched in the past three phases. However, the expansion plans were changed after the new UDF government took over the administration of the state in May 2011.

As per the revised plans, the international terminal is to face a major renovation before being converted completely into a domestic terminal, while a new state-of-the-art international terminal is coming up. As per the new plans announced by the board of directors in September 2011, the new international terminal would come up on the eastern side of the existing structure. The built-up space of the new terminal would be 1500000 sqft having segregated departures and arrivals at different levels. The new terminal with an elevation featuring Kerala temple architecture will have all the latest features of international standards. Construction major Larsen & Toubro is building the facility which will be ready within 30 months. The two-level terminal will have provisions for 112 check-in counters, with in-line baggage screening facilities, 100 immigration counters, 40000 sqft of duty-free shops at departure and arrival lounges, 19 boarding gates, 15 aerobridges, six baggage conveyor belts and fully covered alighting and boarding area.

The current domestic terminal would be converted into an "Executive Pavilion" and would handle VIP and private chartered flights and jets. The current international terminal once converted into a domestic terminal, will have 5 aerobridges and 10 boarding gates, apart from increased parking bays.

Management
Cochin International Airport is the first in India to be built by a public-private partnership and is owned by a public limited company called Cochin International Airport Limited, better known as CIAL, created by the Government of Kerala in 1994. The Government of Kerala holds a 33.36% stake, making it the single largest investor in the project. Indian government companies like Air India, BPCL and AAI hold an 8.74% stake, while foreign companies like Abu Dhabi based Emke Group, the Oman-based Galfar Group, UAE based Majeed Bukatara Trading holds a 5.42% stake. Indian companies hold 8.57% stake, while scheduled commercial banks like Federal Bank, SBT and Canara Bank holds 5.91%. The remaining 38.03% stake is held by more than 10,000 personal investors from 29 countries, mostly non-resident Indians.

The company has decided to go for a public offering and give 10 million shares to HUDCO as part of a debt settlement, which would to lead HUDCO having a 3.37% stake in the company and a reduction of the stake of other holders.

The Chief Minister of Kerala is the ex-officio chairman of CIAL.

Terminals
Cochin International Airport has three main terminals: two domestic and one international. There is also a cargo terminal.

Terminal 1 (Domestic)
Terminal 1 used to be an international terminal until the operations were shifted to the new international Terminal 3. The terminal underwent a massive upgrade and renovation after that, which took its total handling capacity to 4,000 passengers per hour which is 5 times the previous capacity. The renovated Terminal 1 was opened to travellers on 12 December 2018.

With a total built-up area of 600000 sqft, Terminal 1 has 56 check-in counters, 7 aerobridges and a conveyor belt system to transfer baggage from 12 flights at a time. It is also equipped with 6 reserve lounges, an art area, a food court, an executive lounge, and a 50000 sqft shopping area. The terminal has a solar carport facility that can generate 2.4 MW of power and can house 1,400 cars. Together with the solar carport at the International Terminal 3, it can generate 5.1 MW of power which is the largest carport in the world.

Terminal 2 (Executive)
Terminal 2 has an area of 10000 m2 and is designed to handle up to 400 passengers at peak times. The departure hall has 26 common use terminal equipment (CUTE) enabled check-in counters, including 6 premium check-in counters, 4 self check in counters. It has 6 security gates and a common waiting area that can accommodate 400 passengers at a time. There is also a family lounge and a premium lounge for business class passengers and a food court is housed in the waiting area, while a restaurant operates in entry lobby. There are 4 remote gates facility available for domestic passengers. The arrivals hall has 2 baggage carousels. This block was converted into an executive terminal on 12 December 2018.

Terminal 3 (International)
The new international Terminal 3 was opened to travellers in March 2017. The theme of the terminal is inspired by Thrissur Pooram and is built in traditional Kerala architecture. 15 real-size fibre elephants, adorning traditional costumes welcome the travellers at the departure facility area. The terminal has 5 entry gates, 84 check-in counters and 80 immigration counters. It is equipped with 10 escalators, 21 elevators, and 3 moving walkways. The terminal has a solar carport facility with a capacity of generating 2.7 MW power and can provide a parking facility for 1,400 cars. Along with the solar carport at the domestic Terminal 1, it is the largest solar carport in the world with a total capacity of 5.1 MW of power and a parking facility for 2,800 cars.

With a total area of more than 150000 m2, the terminal is built over 4 levels. The ground level handles arrivals. With a total ground area of around 41156 m2, it has 10 customs counters, 3 bank counters, a shopping complex for the passengers and the general public, a VIP lounge, arrival duty-free shops and a baggage claim area. The second level (5.5 metres above ground level) also handles arrivals and is equipped with 30 immigration counters, 10 e-T-Visa counters, 5 health check counters, and 2 moving walkways. The third level (10.5 metres above ground level) is the departure facility area. It has a 20836 m2 check-in area, 3 check-in islands having a total of 84 counters, 40 emigration counters, an 800 m2 departure duty-free shop, 3 VIP reserved lounges, airline offices, 2 prayer rooms, and 1 moving walkway. The fourth level (15.5 metres above ground level) is the departure security hold area. With an area of more than 8674 m2, it has a food court, restaurant, 3 airline executive lounges, smoking lounge, bar and reclining area.

With the commissioning of Terminal 3, Cochin International Airport became India's 4th largest airport after Delhi, Mumbai, and Kolkata, with a total built up area of more than 2300000 sqft for commercial operations.

Cargo center
Cochin Airport has a dedicated cargo center on the eastern side of the complex. The cargo center is one of the largest facilities in India with a total floor space of 120000 sqft in 50 acre of land. There are three complexes in the cargo village:

 * The Centre for Dry Cargo (CDC), with an area of 50000 sqft, has a dedicated warehousing facility and air-customs inspection facility for both import and export.
 * The Centre for Perishable Cargo (CPC) is the largest dedicated cold storage center for perishable goods in India. It has a floor area of about 22000 sqft and can handle approximately 25,000 tonnes of cargo. It was commissioned in 2008 at a cost of inr 380000000 jointly by CIAL, the Government of India through the Agricultural and Food Promotion Export Development Authority (APEDA), and the Government of Kerala.
 * The Transshipment Cargo Complex is a dedicated warehouse allocated for transshipment cargo. The import and export cargo from the customs warehouses in the catchment area, as well as from airports like Chennai, Bangalore, Coimbatore, etc., are handled and stored at this center for export.

In addition, an exclusive domestic cargo complex has also been constructed for private domestic logistics firms and India Post services.

Business Jet Terminal
According to CIAL, it is now only the fourth airport in India with a terminal for business jets. The terminal is expected to provide customised services to charter and private jets

“This terminal stands unique as it is India's first Charter Gateway. This one-of-a-kind terminal integrates tourism, international summits, business conferences and the movement of high net worth individuals, also accentuates the idea of cost-effectiveness in the development of an elegant airport terminal,” CIAL said in a release. Spread in 40000 sqft, the business jet terminal will cater to international and domestic business jet operations with a ‘safe house’ facility for security-exempted persons, CIAL informed. Besides, it comprises an exclusive private car parking space, a drive-in porch, a grand lobby, five opulent lounges, a business center, duty-free shop, a foreign exchange counter and a high-end video conferencing room. “Upgradation and modernization of transport systems are indispensable for industrial development in Kerala,” said Kerala CM Pinarayi Vijayan after inaugurating the terminal.

Air traffic control
The air traffic control (ATC) tower is 60 m tall. Cochin ATC controls flights below an altitude of 25500 ft. The airport has two instrument landing systems (ILS) using distance measuring equipment (DME) which enable flights to land from both sides of the runway even in rough weather conditions. CIAL is the only airport in the country besides the airport in metros to have such a facility. The ATC uses Doppler VHF omni range I and II.

Large-scale upgrades such as the latest AIRCON 2100 air traffic control automation system were also introduced.

Airport surveillance radar
The Airports Authority of India has installed an advanced airport surveillance radar (ASR) as well as monopulse secondary surveillance radar (MSSR). In addition, a surface movement radar was installed for effective monitoring of flights on the runway and in parking bays.

Runway
Cochin International Airport has one 3,445m long runway oriented as 27/09, which can handle Code E planes. It has a full-length parallel taxiway of 3445 m. The 807 x apron comprising 16 stands can accommodate five wide-bodied and eight-narrow bodied aircraft. The runway is spread over the panchayat areas of Nedumbassery, Sreemoolanagaram and Kanjoor.

Cochin Airport has one helipad for dedicated use of helicopters, meant for air-taxi purposes. Plans for constructing a heliport are underway.

Naval Air Enclave

The Indian Navy has set up a Naval Aircraft Enclave at Cochin International Airport Ltd. (CIAL). The Naval Aircraft Enclave comprises a hangar for bigger aircraft of the Navy, an administrative office, a disbursal center, an apron capable of holding 2 Boeing-type aircraft (P-8I long-range maritime reconnaissance aircraft) and a taxi track. The Naval Aircraft Enclave at Cochin airport is the second such facility of the Navy attached to an international airport, after Mumbai. It is the first public-private participation model airport to hand over land to the Navy for such a facility.

Construction began in 2013 on 10 acre of Navy-owned land at the airport.

Indian Coast Guard Air Enclave
The Indian Coast Guard has taken space in CIAL to develop its second air squadron in Kochi after the INS Garuda facility to improve coastal air surveillance and air-related assistance.

The facility comprises 2 hangars to accommodate the Chetak helicopter squadron, and the Dornier squadron along with advanced light helicopters are expected to be based here. The Air Enclave would have a 50m taxi link to the runway at CIAL and would consist of aircraft hangars, technical areas and administrative buildings.

Cargo
The following cargo airlines fly to the airport:

 * SpiceXpress

Security
Cochin International Airport is listed among the 12 major airports of India. Its safety and security is handled by the Bureau of Civil Aviation Security through the Central Industrial Security Force (CISF). Cochin was the third international airport and the first private airport in the country to come under the cover of CISF in 2001, after the Government of India decided to hand over airport security to CISF in the wake of the hijacking of Indian Airlines Flight 814. Security was handled by the Kerala Police; Special Branch of Kochi Police before the CISF. The airport company's Aviation Safety Wing (ASW) oversees security facilities and equipment. The ASW is also responsible for fire and emergency services.

Security management training is provided by CIAL's Aviation Academy and personnel are employed by the company as security agents – deployed in baggage screening rooms, entry gates, the general cargo area and the lounge areas. CIAL ASW employs Army-trained sniffer dogs to check for explosives in baggage areas, the only Indian airport to have such a facility. CIAL has introduced three state-of-the-art ION scanning detectors that can identify small amounts of material, down to nanograms, of explosives.

The airport is under the direct protection of the Kochi City Police, who have a station outside the terminal. CISF maintains two armed squadrons and one bomb detection and disposal squad. CISF has a command center 250metres outside the terminal, with an intelligence division and mobilisation cell. The air customs division operates a narcotics detection squad in the terminal. The CIAL ASWs are working on installing a fully automated perimeter intrusion detection system that will detect any possible violation, using sensors that will provide critical time for the security forces to react. Phase one of the intrusion prevention system is in place with barricades, automatic retractable bollards, surveillance cameras, parking gate management systems and the introduction of biometric ID cards for staff.

The immigration department is handled by Kerala Police, Special Branch officials trained by the Bureau of Immigration.

The airport company also has a high-end robotic security system capable of remote-handling of explosive devices and fire-fighting and hostage situations. The system is operational from September 2014, making CIAL the first in South India to have such a facility. It comprises safety robots developed by Canada-based Pedsco Ltd. and Threat Containment Vessel (TCV) and sophisticated luggage containment vehicle – both developed by Nabco, USA. The main equipment of the system is a threat containment vessel (TCV) carried by robots, which is capable of containing a blast of minimum 8 kg of TNT or equivalent quantity of explosive, triggered by suspected luggage including chemicals, radioactive materials and bombs. The container is reusable as it withstands repeated detonations and size of the TCV can be adjusted with the size of the suspected baggage. In addition to TCV, the technology also comprises a remote mobile Investigator (RMI)-9WT, which is a multipurpose six-wheel vehicle with removable tracks for step climbing capability. Using fixed arm extenders, the robot can be configured for different applications such as under car searches and second-store window access.

Education and training
Since 2008, CIAL has been the first airport to venture into providing higher education in aviation management and technical areas to overcome the shortage of skilled manpower in the aviation industry. CIAL has teamed up with the Indira Gandhi National Open University (IGNOU) to start two schools in aviation education.

CIAL Aviation Academy provides two-year management degrees in aviation and airport management, operations, economics, finance and human resources, along with short-term aviation oriented vocational diplomas. The academy also trains technical manpower required for airport operations. Air India Express has its temporary stewards grooming and training center in the facility.

Aviation Security Training Institute – The Aviation Security Training Institute (ASTI), envisioned by the Bureau of Civil Aviation Security has been inaugurated in February 2014. The institute has state-of-the-art facilities like X-ray simulators (21), explosive model room, two classrooms with LCD projectors and other training infrastructures. Explosive model rooms display different types of switch mechanism to trigger explosion. Library consists of CDs, catering to International Civil Aviation With the establishment of ASTI in Kochi, employees and management personnel from Mangalore, Kozhikode, Coimbatore, Trichy, Madurai and Thiruvananthapuram airports can take training here. Employees of the proposed Kannur international airport are also likely to be trained here.

Ground transportation
CIAL is located between National Highway 544 (NH 544), one of the main highways of South India, and the Main Central Road (MC Road), one of the State Highways of Kerala. An expressway is planned from NH 49 to the MC Road to facilitate faster transport. Though the main railway line is only about 500 meters from the airport, the nearest station is Angamaly about 8 km away.

Air-taxi services
Cochin airport has dedicated air-taxi services for passengers to travel to major pilgrim destinations in Kerala as well as to cities like Trivandrum and in northern Kerala like Kozhikode. In association with Bharat Airways, it provides scheduled air-taxi services to Sabarimala.

CIAL Aerotropolis
One of the main projects for the future of the airport was the CIAL Aerotropolis, or Airport City, with a total area of 500 acre. The Aerotropolis was proposed by its founder, V.J. Kurien, to ensure additional revenue sources for the growth of the company and to increase airport traffic through tourism and allied activities. The Aerotropolis first began in Nedumbassery and nearby villages, aimed to convert into a self-sustainable town, with the airport forming the core element with a residential zone. Work on the Aerotropolis commenced in 2007, and most of the aerotropolis has been completed, as of 2023.

Manufacturing and business zone
The master plan envisages the creation of a Special Economic Zone (SEZ) for aircraft-allied industries, especially spare parts and OEM manufacturing units, an airline research and development center, workshops and service zones. In addition to this an Information Technology Park, with dedicated airline support technology, design and development centers is also proposed. An integrated logistics center and central container freight station are planned at the cargo village.

CIAL's proposal for establishing the SEZ was approved by the Board of Approval of SEZs in 2008; however, work is yet to start due to the global recession. The project is estimated was started in August 2011, and some parts are completed, as of 2023.

CIAL solar power project
The CIAL Solar Power Project is a 15 megawatt (MW) photovoltaic (PV) power station built by CIAL. Cochin International Airport became the first fully solar-powered airport in the world with the commissioning of the plant.

The plant comprises 46,150 solar panels laid across 45 acre near the international cargo complex, and was installed by the German-based Bosch. It is capable of generating 50,000 units of electricity daily, and is equipped with a supervisory control and data acquisition system (SCADA), through which remote monitoring is carried out. The project components include PV modules of 265 watt-peak (Wp) capacity manufactured by Renesola, and inverters of 1 MW capacity manufactured by ABB India.

The plant is coupled with a 1.1 MW solar plant that was commissioned in 2013, the first megawatt scale installation of a solar PV system in Kerala. This plant was installed by Emvee Photovoltaic Power Pvt. Ltd., consisting of 4,000 monocrystalline modules of 250 Wp and 33 string inverters of 30 kW capacity each.

CIAL has doubled solar production to 28.8 MW of power production within 2 years as part an ambitious plan to expand solar power, with 3 major projects under construction. The first came up over a 3.4 km canal close to the airport, the second was through development of India's first solar carport roof utility plan and the third will use ground level panels on open space near the airport.

Accidents and incidents

 * On 30 July 1998, Indian Airlines Flight 503, a Dornier 228 from Agathi, crashed into a building after takeoff, killing all six people on board and three more people in the building.
 * On 25 April 2010, Emirates Flight EK 530, a Boeing 777-200 from Dubai, dropped around 200 ft during heavy turbulence as the aircraft entered a thick cumulonimbus cloud while on its descent. 20 passengers were injured and some internal damage was caused to the plane. The aircraft was on descent into Kochi when the incident occurred. There were 350 passengers and 14 crew on board.
 * On 29 August 2011, Gulf Air Flight GF 270, an Airbus A320 from Bahrain, carrying 137 passengers skidded off the runway at 3:55 am during its descent. The reason for the crash is suspected to be the heavy rain at the time. The aircraft had been said to have slipped off the runway and landed nose first. The aircraft broke one of its wings while landing and stalled air traffic for hours. Passengers after the crash, in chaos, were reported to have jumped from the aircraft through emergency exit doors even before stairways were brought into place. The crash caused seven minor injuries and two serious injuries due to the chaos that followed.
 * On 4 September 2017, Air India Express Flight IX 452, a Boeing 737-800 which arrived from Abu Dhabi, got stuck in the drain canal while taxiing to the international terminal 3 after landing. Passengers and crew were safely evacuated. The incident happened when the pilot took a wrong turn from the parallel taxiway, almost 90 meters before the link taxiway through which the aircraft was supposed to vacate.

2018 Kerala floods
As a consequence of 2018 Kerala floods, the airport was closed 14–29 August 2018. Water in the Periyar, which flows 500 m away from the airport, rose to 4.7 ft during these days. The runway and other facilities were non-functional due to excessive flooding and inclement weather. Flights to Kochi were diverted to and were operating from other airports in the state like Thiruvananthapuram and Kozhikode. From 20 August 2018, INS Garuda (a naval airbase in Kochi) was used as a civilian airport for small aircraft operations to neighbouring cities like Bangalore, Chennai, and Coimbatore. The airport reopened on 29 August 2018, 14:00 Indian Standard Time (UTC+05:30). It suffered an estimated loss of inr 3000000000 during the closed period.

2019 Kerala floods
As a consequence of 2019 Kerala floods, water flooding the runway due to the heavy rains led to temporary suspension of airport operations from 8 August 2019 to 12:00 Indian Standard Time on 11 August 2019.

Awards and accolades
Cochin International Airport achieved major international recognition in 2015 when it became the first fully solar-powered airport in the world. In 2017, it also became the first airport in the world to implement a solar carport, a parking bay with rooftop solar panels. The airport was selected as "the best non-metro airport in India" in 2016 by the Air Passengers Association of India. The airport has also won numerous awards for energy conservation, productivity and infrastructure. In July 2018, the airport was selected for the Champion of the Earth award, the highest environmental honour instituted by the United Nations.

title: Cochin International Airport