L-notation

L-notation is an asymptotic notation analogous to big-O notation, denoted as formula_1 for a bound variable formula_2 tending to infinity. Like big-O notation, it is usually used to roughly convey the computational complexity of a particular algorithm.
Definition.
It is defined as
where "c" is a positive constant, and formula_4 is a constant formula_5.
L-notation is used mostly in computational number theory, to express the complexity of algorithms for difficult number theory problems, e.g. sieves for integer factorization and methods for solving discrete logarithms. The benefit of this notation is that it simplifies the analysis of these algorithms. The formula_6 expresses the dominant term, and the formula_7 takes care of everything smaller.
When formula_4 is 0, then
is a polynomial function of ln "n"; 
When formula_4 is 1 then 
is a fully exponential function of ln "n" (and thereby polynomial in "n").
If formula_4 is between 0 and 1, the function is subexponential of ln "n" (and superpolynomial).
Examples.
Many general-purpose integer factorization algorithms have subexponential time complexities. The best is the general number field sieve, which has an expected running time of
for formula_14. The best such algorithm prior to the number field sieve was the quadratic sieve which has running time
For the elliptic curve discrete logarithm problem, the fastest general purpose algorithm is the baby-step giant-step algorithm, which has a running time on the order of the square-root of the group order "n". In "L"-notation this would be 
The existence of the AKS primality test, which runs in polynomial time, means that the time complexity for primality testing is known to be at most
where "c" has been proven to be at most 6.
History.
L-notation has been defined in various forms throughout the literature. The first use of it came from Carl Pomerance in his paper "Analysis and comparison of some integer factoring algorithms". This form had only the formula_18 parameter: the formula_4 in the formula was formula_20 for the algorithms he was analyzing. Pomerance had been using the letter formula_21 (or lower case formula_22) in this and previous papers for formulae that involved many logarithms.
The formula above involving two parameters was introduced by Arjen Lenstra and Hendrik Lenstra in their article on "Algorithms in Number Theory". It was introduced in their analysis of a discrete logarithm algorithm of Coppersmith. This is the most commonly used form in the literature today.
The Handbook of Applied Cryptography defines the L-notation with a big formula_23 around the formula presented in this article. This is not the standard definition. The big formula_23 would suggest that the running time is an upper bound. However, for the integer factoring and discrete logarithm algorithms that L-notation is commonly used for, the running time is not an upper bound, so this definition is not preferred.