Approximate Algorithms for Maximizing the Capacity of the Reverse Link in Multiple-Class CDMA Systems
Approximate Algorithms for Maximizing the Capacity of the Reverse Link in Multiple-Class CDMA Systems
Arash Abadpour and Attahiru Sule Alfa
*Code Division Multiple Access (CDMA) has proved to be an efficient and stable means of communication between a group of users which share the same physical medium. Therefore, with the rising demands for high-bandwidth multimedia services on mobile stations, it has become necessary to devise methods for more rigorous management of capacity in these systems. While a major method for regulating capacity in CDMA systems is through power control, the mathematical complexity of the regarding model inhibits useful generalizations. In this paper, a linear and a quadratic approximation for the aggregate capacity of the reverse link in a CDMA system are proposed. It is shown that the error induced by the approximations is reasonably low and that rewriting the optimization problem based on these approximations makes the implementation of the system in a multiple-class scenario feasible. This issue has been outside the scope of the available methods which work on producing an exact solution to a single-class problem.
In Code Division Multiple Access (CDMA), several independent users access a common communication medium by modulating their symbols with preassigned spreading sequences. The success of this strategy depends on the proper handling of the multiple access interference (MIA). The MIA could be either suppressed through the implementation of advanced signal processing methods such as multiuser detection and receiver beam-forming, or it could be managed through efficient power control (Hanly and Tse, [1999]) and signature selection. In this paper, we look at the management of capacity in a single-cell system, where certain conditions have to be met in order to guarantee an efficient and stable communication (see a survey in Zhang et al, [2005]).
The basic approach to the power management problem is to define a set of constraints and then to find the solution which is binding for all of them. An example of this approach is to find the set of transmission powers which provide a given (often identical) signal to interference ratio (SIR) for all the stations in a cell (Hanly, [1995]). For example, in Ishikawa and Umeda, [1997], the researchers work on capacity design and analysis of the call admission control using a fixed-SIR approach (also see Viterbi et al, [1994,Shin et al, [1999]). A comprehensive and generalized treatment of this topic can be found in Yates, [1995]. The fixed-SIR approach is carried out through open-loop power control by individual stations as guided by power messages transmitted by the base station (Smith and Gervelis, [1996]).
With the introduction of multimedia services to wireless CDMA communications, the goal is no more to provide fixed capacity to all of the users (Ulukus and Greenstein, [2000]), but to maximize the aggregate capacity given a set of constraints (Hanly and Tse, [1999]). In fact, the addition of other types of services to the conventional voice-only communication channels has urged the need for more control over the rates at which different stations transmit (Frodigh et al, [2001]). This control is necessary in order to maximize system performance measures including the aggregate capacity (Gilhousen et al, [1991]). The implementation of capacity maximization in multimedia-enabled networks is in contrast with voice-only systems in which the sole purpose of the power control mechanism is to eliminate the near-far effect through providing every station with a fixed SIR (Gilhousen et al, [1991]). For an early coverage of achieving multiple rates (Ottosson and Svensson, [1995]) through maintaining fixed chip-rate and different transmission powers refer to Baier et al, [1994,Chih-Lin and Sabnani, [1995].
The maximization of the capacity, in this paper, is attempted at the reverse link (uplink), because this link is often the limiting link in CDMA communication systems (Bender et al, [2000,Parkvall et al, [2001]). For an early coverage of the capacity of the reverse link, accompanied by results gathered from field tests, refer to Padovani, [1994] (also see Evans and Everitt, [1999]). Among different channels on the reverse link, this paper concentrates on the traffic channels, due to the more demanding conditions they need to satisfy in establishing stable communications (Yang, [1998b]). The work presented here is different from power control strategies used in the forward link (Kim et al, [2003]), mainly due to to the stringent requirements of the reverse link (Verdu, [1989]). It is worth to mention that this work analyzes the system at chip-level, as opposed to some others which also include the different transmission rates of the individual stations (Sung and Wong, [2001]).
To reach a practically sound framework, it is important to consider a set of practical constraints to be satisfied in the system. While the minimal set of constraints considered by different researchers always includes a minimum Quality of Service (QoS) bound (Hosein, [2004]), it is observed that this constraint, in the absence of other ones, can effectively cause very unfair systems (Oh et al, [2003,Jafar and Goldsmith, [2003]). This issue could be dealt with by incorporating fairness constraints into the problem. This, however, would increase the complexity of the solver. Moreover, adding more constraints into the problem makes the analysis of the problem, and development of a solver algorithm, harder.
The existence of different services in modern wireless systems has caused the need to define different classes of service (Lee et al, [2005]). This, for example, means potentially different guaranteed minimum QoS levels for different users. Moreover, different users may have different significances to the service provider, for example because of their premium rates. The fact that the constraints are met at different points for different stations makes the application of many of the methods developed previously impossible, unless changes are made to them to fulfill the new demand. This is essentially because a majority of the previous algorithm were designed for the case in which all the stations reside in the same class (Hosein, [2003,Oh and Soong, [2006]).
In this paper, we look at the problem of maximizing the aggregate capacity of the reverse link in a CDMA network. Hence, the aggregate capacity is defined as the weighted summation of the capacities of the stations. Also, we consider the case in which there are separate minimum SIR constraints for different stations. The problem analyzed here also includes a maximum aggregate received power constraint and separate limits on the transmit powers of each station. Furthermore, each station has its own maximum bandwidth constraint. We will show how this problem can be approximately solved using linear or quadratic programming.
The rest of this paper is organized as follows. Section 2 contains the proposed method, Section 3 presents some experimental results and, finally, Section 4 concludes the paper.
This section contains the analysis of the reverse-link capacity maximization in a multiple-class system. Here, we assume that during the time it takes for the solver to produce a solution the system is in a steady state. This model is based on the assumption that the system is analyzed in time slots of Ts, where Ts >> 1/W (W is the bandwidth), and that the coherence time of the most rapidly varying channel is greater than Ts. Therefore, in each time slot, path-loss propagation coefficients can be assumed to be constant (Oh et al, [2003]). It is also worth to mention that the typical time interval during which the shadowing factor in nearly constant for a mobile station is a second or more (Torrieri, [2004]). Hence, for solvers which elapse significantly less than a second to produce a solution shadowing can be ignored as well.
The rest of this section is organized as follows. First, in Section 2.1, the system model is presented. Then, a set of substitute variables are defined in Section 2.2, from which, in Section 2.3, two approximations for the objective function are derived. These approximations are used to generate the canonical representations depicted in Section 2.4. Then, after the issue of the addition of other constraints into the problem is addressed in Section 2.5, Section 2.6 presents the proposed algorithms as well as a complexity analysis.
Assume that there are M mobile stations with reverse link gains of g1,¼, gM, which satisfy g1 > ¼ > gM. Denote the transmit power of the i-th mobile station as pi and the maximum transmission power of the i-th station as pmaxi,
0 £ pi £ pmaxi, "i.
(1)
With a background noise of I, the SIR for the signal coming from the i-th station, as perceived by the base station, is calculated as,
gi=
pigi
I+
M å
j=1,j ¹ i
pjgj
.
(2)
Here, we assume that Shannon's formula can be used to approximately relate SIR to the bandwidth, thereby writing Ci=Blog2(1+gi). The adoption of the maximum bound given by Shannon's theorem is based on previously-developed models (see Kandukuri and Boyd, [2000,Hanly and Tse, [1999,Huawei, [2005] for example). Moreover, we omit the constant B for notational convenience and therefore analyze relative capacities. Using these notations, in this section, we consider the problem defined as maximizing,
C=
M å
i=1
aiCi, ai > 0,
(3)
subject to,
ì ï ï í
ï ï î
gi ³ gmini, "i,
Ci £ Cmaxi, "i,
M å
i=1
pigi £ Pmax,
0 £ pi £ pmaxi, "i.
(4)
Here, the constants gmini, Cmaxi, and pmaxi are the minimum SIR, the maximum capacity, and the maximum transmission power of the i-th station, respectively and ai is the significance of station i. In other words, the values of the ais demonstrate the "interest" of the system in each particular station. Accordingly, these values can indicate priority, for example for providing more urgency to calls made by emergency vehicles, or be based on the premium rate each station has signed on to pay for the service. Through grouping the stations into classes of identical values for these parameters, this model will be applicable to a multiple-class scenario.
Setting ai=1, gmini=g, Cmaxi=h, and pmaxi=pmax this problem will reduce to the single-class problem titled as the NSC in Abadpour et al, [2007b]. In Abadpour et al, [2007b] an algorithm is proposed which solves the NSC in an M-station cell in O(M3) flops.
The goal of the rest of this section is to solve the more generalized problem of maximizing (3) subject to (4), in which different stations not only have different significances, denoted by different values of ai, but also have their own individual constraints. In these circumstances, the mathematical method introduced in Abadpour et al, [2006] and used for tackling the NSC (Abadpour et al, [2007b]) and its single-class generalizations (Abadpour et al, [2007a]) will not work, because the constraints are now specific to the stations and therefore the methodology used previously will fail.
Here, we propose a new set of substitute variables and then rewrite the optimization problem, using approximations, as a linear or a quadratic programming problem.
Define the new set of variables,
ji=
gi
1+gi
=
pigi
M å
j=1
pjgj+I
, "i.
(5)
Note that,
Ci=-log2(1-ji).
(6)
Derivation shows that,
pigi=I
ji
1-
M å
j=1
jj
.
(7)
Thus, if åi=1Mji < 1, a set of positive jis will produce a set of positive pis.
Using (5), the conditions given in (4) can be rewritten as linear constraints for jis as,
ì ï ï í
ï ï î
jmini £ ji £ jmaxi, "i,
M å
i=1
ji £
Xmax
Xmax+1
,
li
M å
j=1
jj+ji £ li, "i.
(8)
Here,
ì ï ï ï ï í
ï ï ï ï î
jimin=
gimin
gimin+1
,
jimax=1-2-Cimax,
Xmax=
Pmax
I
,
li=
pmaxigi
I
.
(9)
Note that the second condition in (8) results in åi=1Mji £ 1, satisfying the condition needed for (7) to produce positive pis. Defining the M×1 vectors [(j)\vec], [(j)\vec]min and [(j)\vec]max as the sequence of all values of ji, jimin and jimax, respectively, we define,
While we will use (12) as the set of constraints for the optimization problem, to be given later in the paper, this set of inequalities can also be used for identifying the feasible region for [(j)\vec]. This issue is not discussed in this paper.
The formulation of the objective function, in its present form, as a function of the jis, includes fractional and logarithmic terms and is hard to work with. Thus. we devise two methods, a linear and a quadratic one, to approximate C as a first-degree or a second-degree function of the jis. With the linear representation of the constraints, given in (12), this would make the application of standard linear and quadratic programming methods to the problem analyzed here possible.
For small gi, We have,
Ci=log2(1+gi) @
1
ln2
gi @
1
ln2
ji.
(13)
The approximation used here can be written as,
ln(1+x) @
x
1+x
, x Î [g,2h-1],
(14)
and yields a linear approximation of Ci in terms of ji. A better approximation is given below,
Ci @
1
ln2
gi=
1
ln2
ji
1-ji
@
1
ln2
ji(1+ji).
(15)
This is a second order approximation of Ci in terms of ji and uses the following approximation,
ln(1+x) @
x
1+x
æ è
1+
x
1+x
ö ø
, x Î [g,2h-1].
(16)
The appropriateness of the two approximations demonstrated in (14) and (16) is investigated in Figure 1. Here, the nominal values of g = -30dB and h = 0.3 are used, demonstrated using the shaded area. Based on Figure 1-b, both approximations induce less than 10% error. Note that as pi increases, and thus so do gi and ji, the error induced by either approximation goes up. However, the second order approximation is always more accurate than the linear approximation (see Figure 1-a). It is also important to emphasize that while the linear approximation is conservative, i.e. it produces smaller values than the exact formulation, the second order formulation approximates the capacity by a laregr value. Therefore, the second order approximation overestimates the aggregate capacity which it attempts to maximize.
(a)
(b)
Figure 1: Investigating the properness of the approximations given in (14) and (16). The shaded areas show the working interval. Note that, as shown in (14) and (16), here we approximate ln(1+x) in terms of [x/(1+x)]. Thus, the fact that the quadratic approximation exhibits a line in the (x,f(x)) plane should not mislead the reader. (a) The exact values compared with the two different approximations. (b) Relative error induced by the two approximations.
Defining the M×1 vector [(a)\vec], as the sequence of all ais, we use the linear approximation, given in (13), to rewrite the objective function as,
C @
1
ln2
M å
i=1
aiji=
®
f
T
®
j
.
(17)
Here,
®
f
=
1
ln2
®
a
.
(18)
Similarly, the quadratic approximation, given in (15), results in,
C @
1
ln2
M å
i=1
ai(ji+ji2)=
1
2
®
j
T
H
®
j
+
®
f
T
®
j
,
(19)
where,
H=
2
ln2
diag[a1,¼,aM].
(20)
The maximization of either (17) or (19) has to be carried out subject to the constraints shown in (8) and using linear or quadratic programming, respectively. We call these two algorithms the M1SC and the M2SC, respectively. These algorithms will be presented in detail in Section 2.6.
The approximations proposed here are also helpful when a a new constraint is to be added to the problem. The reader is referred to the case of adding a new constraint to the NSC, addressed in Abadpour et al, [2007a], which led to the definition of the N+SC. There, to tackle the unfairness of the solution to the NSC, a capacity-share constraint was added to the problem, as,
~
C
i
=
Ci
C
£
1
m
1
M
, 0 < m < 1.
(21)
Adding this constraint to the NSC almost quadrupled the code complexity of the solver (Abadpour et al, [2007a]). Here, we demonstrate the straightforward approach which yields the addition of the new constraint to the approximate problems.
Using (3) Equation (21) can be written as,
M å
j=1
aj
®
j
j
³ Mmji, "i.
(22)
This translates into,
æ è
Mm
®
I
M×M
-
®
a
®
1
1×M
ö ø
®
j
£
®
0
M×1
.
(23)
We argue that the addition of any constraint which can be written as a linear function of the jis could be performed similarly.
Using the developed formulation, the two algorithms of the M1SC and the M2SC can be written as the three steps of,
Generating A, [(b)\vec], [(f)\vec] and H,
Solving either [(j)\vec]=linprog([(f)\vec],A,[(b)\vec],[(j)\vec]min,[(j)\vec]max), for the case of the M1SC, or [(j)\vec]=quadprog(H,[(f)\vec],A,[(b)\vec], [(j)\vec]min,[(j)\vec]max), for the case of the M2SC, and, finally,
Calculating Cis using (6), pis using (7), and C using (3).
Note that, as the matrix H, defined in (20), is positive-definite, the computational complexity of the M2SC is polynomial (Kozlov et al, [1979]). The linear programming-based approach, namely the M1SC, will take up polynomial time as well (Gill et al, [1982]).
The proposed algorithms are implemented in MATLAB 7.0 and executed on a PIV 3.00GHZ personal computer with 1GB of RAM running Windows xp.
Here, the work is carried out in a circular cell of radius R=2.5Km. For the station i at the distance di from the base station, only the path-loss is considered, and is modeled as given in Rappaport and Milstein, [1992],
gi=Cdin.
(24)
For a comprehensive review of the subject refer to Rappaport, [2002]. Here, C and n are constants equal to 7.75×10-3 and -3.66, respectively, when di is in meters. Equivalently, with di in kilometers, C will equal 1.2283×10-13 (see Yang, [1998a,Oh and Wasserman, [1999,Goodman and Mandayam, [2000]). To produce a sequence [(g)\vec] of length M, a set of 3M points are placed in the [-R,R]×[-R,R] square, based on a two dimensional uniform distribution. Then, from those in the circle with radius R centered at the origin, M points are picked.
The base parameters used in this study are g = -30dB, I=-113dBm, Pmax=-113dBm, pmax=23dBm, and h = 0.3. These values are partly based on the data given in Goodman and Mandayam, [2000,Goodman, [1997,Yang, [1998a]. Note that, here, the values of I and Pmax comply with the notion of limiting the blocking probability, as defined in Viterbi and Viterbi, [1993]. The conversion from dB to watts is performed according to x dB º 10[1/20]x. Also, x dBm º 10[1/10]x mw.
(a)
(b)
Figure 2: Sample problems defined in 15-station cells. (a) All ais are one. (b) None unity ais visualized using different shades of gray.
In order to evaluate the performance of the proposed methods, in comparison to each other as well to the exact method, namely the NSC, first, a cell containing 15 stations, as shown in Figure 2-(a), is considered.
In order to be able to apply the NSC and the proposed algorithms on the same problem, we set ai=1, gmini=g, Cmaxi=h, and pmaxi=pmax, for all the stations. Doing so, we are using the fact that the NSC solves a special case of the problem the M1SC and the M2SC are able to work on.
It takes 8.6ms for the NSC to produce a solution to the given problem. Using the first-order approximation, the M1SC solves the same problem in 26.6ms and the M2SC, which is based on a second-order approximation, takes 23.4ms to finish. Therefore, utilization of the second-order approximation results in more than 10% decline in the computational complexity of the solver. Similar observation is made for problems with different sizes and locaitons of stations. It is worth to mention that the application of the approximations almost triples the computational complexity. This is mainly due to the fact that the exact algorithms go through a list of candidate points (Abadpour et al, [2007b]), whereas the approximate algorithms use numerical search at their core. Nevertheless, the approximations enable us to solve the problem in a multiple-class framework, a scenario which is out of the scope of the exact algorithm.
Comparison of the aggregate capacity values generated by the three problems, we observe values of C=0.735, C=0.734, and C=0.735, produced by the NSC, the M1SC, and the M2SC, respectively (values are relative). The more accurate result of the M2SC is notable. Numerically, the M1SC has caused 0.16% error in the aggregate capacity whereas the M2SC is accurate up to four decimal places.
Comparing the M1SC with the exact algorithm, the mean deviation in the values of pi is 11.50%. The minimum and the maximum deviation of the same variable is 0.08% and 52.08%, respectively. Similar figures are observed for values of Ci (mean of 11.70%, minimum of 0.085% and maximum of 53.00%). Analyzing the solution generated by the M2SC, however, the deviation in pis and Cis is zero per cent up to four decimal places.
In the next experiment, the performance of the two algorithms, the M1SC and the M2SC, in a truly multiple-class system are compared. In order to do so, a sample problem is generated, as shown in Figure 2-(b). Here, darkness of each station demonstrates its corresponding value of ai (the darker a stations is, the higher the corresponding value of ai is). Using the M1SC, it takes about 29.7ms to solve this problem, whereas the M2SC demands 28.1ms to find the solution to the same problem (about 5% less). Furthermore, there is 1.09% difference between the aggregate capacity values calculated by the two algorithms.
Based on the results stated in the above, another experiment is carried out in order to analyze the behavior of the M2SC in a simulation which spans a given period of time. In this experiment, the movements of M=5 stations in a cell are simulated and the corresponding problems are solved. Here, the movements are modeled using a discrete random walk with the speed at each moment chosen based on a uniform random variable between zero and 5Km/h (Jabbari and Fuhrmann, [1997]). Here, we assume that no station leaves the cell or enters it. In this setting, the system is analyzed in a time span of T=200s, during which the resulting problem is solved every dt=100ms. Figure 3 shows the random walk of the stations during the experiment. The solutions produced for all the corresponding problems are aggregated in Figure 4. Here, each row represents one station. The graphs on the left present the transmission powers of the stations in this time span while the graphs to the right show the regarding capacities. Figure 5 shows the aggregate capacity of the system during the experiment and, finally, Figure 6 presents the capacity shares of the stations during this experiment.
Figure 3: Pattern of movement of the stations used in the dynamic analysis of the M2SC.
(a)
(b)
Figure 4: Transmission powers and the capacities of different stations over the time in the dynamic experiment. (a) Transmission powers. (b) Capacities.
Figure 5: Aggregate capacity during the experiment.
Figure 6: Capacity shares of the stations during the experiment. Each shade of gray represents one station.
The problem of maximizing the aggregate capacity of the uplink in a single-cell CDMA system was analyzed in this paper. As an extension to the available methods, the case of multiple-class systems was analyzed. As opposed to the previous studies which assume identical constraints for all the stations, it was argued that in practical systems, customers constitute different classes and therefore should be treated accordingly. It was shown that, through using approximations, the problem can be solved using linear or quadratic programming. While utilizing a second-degree approximation yields a more accurate outcome, it overestimates the capacities and therefore may result in spurious results, due to the fact that the aim of the problem is the maximization of the aggregate capacity. First-order approximation, on the other hand, is conservative but induces more error. Nevertheless, both algorithms are well inside a 5%-error margin. The proposed algorithms, however, are computationally more expensive due to the utilization of numerical optimization in them. The paper also contains analysis of the problem in a time span, during which the stations perform a random walk inside a cell.
Abadpour A, Alfa AS, Soong AC (2006) Closed form solution for
QoS-constrained information-theoretic sum capacity of reverse link
CDMA systems. In: Proceedings of the second ACM Q2SWinet 2006,
Torremolinos, Malaga, Spain, pp 123-128
Abadpour A, Alfa AS, Soong AC (2007b) A more realistic approach to
information-theoretic sum capacity of reverse link CDMA systems in a
single cell. In: Proceedings of the IEEE International Conference on
Communications (ICC 2007), Glasgow, Scotland
Baier A, Fiebig UC, Granzow W, Koch W, Teder P, Thielecke J (1994) Design study
for a CDMA-based third-generation mobile radio system. IEEE Journal on
Selected Areas in Communications 12:733-743
Bender P, Black P, Grob M, Padovani R, Sindhushayana N, Viterbi A (2000)
CDMA/HDR: A bandwidth-efficient high-speed wireless data service for
nomadic users. IEEE Communications Magazine 38 (7):70-77
Chih-Lin I, Sabnani KK (1995) Variable spreading gain CDMA with adaptive
control for integrated traffic in wireless networks. In: Proceedings of IEEE
VTC, pp 794-798
Gilhousen K, Jacobs I, Padovani R, Viterbi A, Jr LW, III CW (1991) On the
capacity of a cellular cdma system. IEEE Transactions on Vehicular Technology
40 (2):303-312
Hanly SV (1995) An algorithm of combined cell-site selection and power control
to maximize cellular spread spectrum capacity. IEEE Journals on Selected
Areas in Communications 13 (7):1332-1340
Hosein P (2003) Optimal proportionally fair rate allocation for CDMA reverse
links. In: Proceedings of the Sixth International Symposium on Wireless
Personal Multimedia Communications, Yokosuka, Japan
Hosein P (2004) Optimality conditions for throughput maximization on the
reverse link for a CDMA network. In: Proceedings of the IEEE Eighth
International Symposium on Spread Spectrum Techniques and Applications, pp
764-768
Ishikawa Y, Umeda N (1997) Capacity design and performance of call admission
control in cellular CDMA systems. IEEE Journal on Selected Areas in
Communications 15 (8):1627-1635
Jabbari B, Fuhrmann WF (1997) Teletraffic modeling and analysis of flexible
hierarchical cellular networks with speed-sensitive handoff strategy. IEEE
Journal on Selected Areas in Telecommunications 15 (8):1539-1548
Kandukuri S, Boyd S (2000) Simultaneous rate and power control in multirate
multimedia CDMA systems. In: IEEE Sixth International Symposium on Spread
Spectrum Techniques and Applications, NJIT, NJ, pp 570-574
Kim DI, Hossain E, Bhargava VK (2003) Downlink joint rate and power allocation
in cellular multirate WCDMA systems. IEEE Transactions on Wireless
Communications 2 (1):69-80
Kozlov MK, Tarasov SP, Khachiyan LG (1979) Polynomial solvability of convex
quadratic programming. Doklady Akademiia Nauk SSSR (translated in Soviet
Mathematics Doklady, 20) 248:1108-111
Oh SJ, Wasserman K (1999) Adaptive resource allocation in power constrained
CDMA mobile networks. In: IEEE Wireless Communications and Networking
Conference, pp 510-514
Rappaport T, Milstein L (1992) Effects of radio propagation path loss on
DS-CDMA cellular frequency reuse efficiency for the reverse channel.
IEEE Transactions on Vehicular Technology 41 (3):231-242
Ulukus S, Greenstein L (2000) Throughput maximization in CDMA uplinks using
adaptive spreading and power control. In: IEEE Sixth International Symposium
on Spread Spectrum Techniques and Applications, pp 565-569
Viterbi AJ, Viterbi AM, Gilhousen KS, Zehavi E (1994) Soft handoff extends
CDMA cell coverage and increases reverse link capacity. IEEE Journal on
Selected Areas in Communications 12 (8):1281-1288
Zhang J, Wang C, Li B (2005) Resource management in DS-CDMA cellular
networks. In: Pan Y, Xiao Y (eds) Design and Analysis of Wireless Networks,
Nova Science Publishers, Inc., Hauppauge, NY, pp 99-111
File translated from
TEX
by
TTH,
version 3.72. On 27 Aug 2008, 20:31.