## Libor.LiborProcess Class LiborVector

```java.lang.Object Statistics.RandomVector Libor.LiborProcess.LiborVector
```

public abstract class LiborVector
extends RandomVector

The `RandomVector` of Libors `U=(X_m(T_m),X_{m+1}(T_m),...,X_{n-1}(T_m))` as seen from time `t=0`, ie. a snapshot of the Libors `L_j, j>=m` at time `T_m`.

No conditioning on information available at time `t`. Time `t` is ignored. Useful only for pricing at time `t=0`.

The idea is that many Libor derivatives depend only on such a vector and that direct simulation of this vector is much faster than computation of Libor paths.

Unfortunately the only way to compute this vector accurately is to derive it from Libor paths which is exactly what we want to avoid. Fortunately there are log-Gaussian approximations to this vector (the vector of logarithms `log(X_j(T_j))` is multinormal) with known mean and covariance matrix which can be simulated directly.

This class provides the basic interface to such a vector and implements many methods associated with a LiborProcess (such as zero coupon bonds, swap rates,...) now derived from the vector `U` instead of true Libor. This allows for fast approximate valuation of Libor derivatives which depend only on the vecor `U`.

A Libor process has methods to compute associated (approximate) Libor vectors based on either the `X0` or `X1` approximation to true Libor and each Libor derivative maintains a reference to both an underlying Libor process and associated Libor vector.

Note: obvioulsy there a large number of other vectors of Libors which one might need. The current vector `this` is useful in the pricing of zero coupon bonds (test case) and swaptions. Other vectors can be implemented similarly.

 Constructor Summary ```LiborVector(LiborProcess LP, int m)```           The approximation to true Libor is either `X0` or `X1` (see LiborProcess.ps).

 Method Summary ` double` `B_i0(int i)`           The zero coupon bond `B_i(0)=B(0,T_i)`. ` double` `B_iTm(int i)`           The zero coupon bond `B_i(T_m)`. ` double` ```B_pq0(int p, int q)```           The annuity `B_pq(t)=sum_{k=p}^{q-1}delta_kB_{k+1}(t)` at time `t=0`. ` double` ```B_pqTm(int p, int q)```           The annuity `B_pq(t)=sum_{k=p}^{q-1}delta_kB_{k+1}(t)`. ` double` `forwardTransport()`           Accrual factor `1/B(T_m,T_n)=1/B(n,m)`. ` double[]` `getValue(int t)`           No conditioning on information available at time `t`. `abstract  void` `nextSample()`           Writes the next random sample of the vector of (approximate) Libors `U=(X_m(T_m),X_{m+1}(T_m),...,X_{n-1}(T_m))` into the array `this.X`. ` double` ```S_pq0(int p, int q)```           The forward swap rate `S_pq(t)=k(t,[T_p,T_q])` at time `t=0`. ` double` ```S_pqTm(int p, int q)```           The forward swap rate `S_pq(t)=k(t,[T_p,T_q])` at discrete time `t=T_m`.

 Methods inherited from class Statistics.RandomVector `conditionalCorrelation, conditionalCovariance, conditionalCovarianceMatrix, conditionalExpectation, conditionalExpectation, conditionalMeanAndStandardDeviation, conditionalMeanAndStandardDeviation, conditionalMeanAndStandardDeviation, conditionalMeanAndStandardDeviation, correlation, covariance, covarianceMatrix, dim, expectation, expectation, main, meanAndStandardDeviation, meanAndStandardDeviation, meanAndStandardDeviation, meanAndStandardDeviation`

 Methods inherited from class java.lang.Object `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

 Constructor Detail

### LiborVector

```public LiborVector(LiborProcess LP,
int m)```

The approximation to true Libor is either `X0` or `X1` (see LiborProcess.ps). At present only `X0` is supported and specification of approximation type `X1` defaults to type `X0`.

Not intended to be instantiated directly. `LiborVectors` are returned by methods of the class `LiborProcess`.

Parameters:
`LP` - underlying Libor process.
`m` - Libors `X_j(T_m), j>=m`.
 Method Detail

### getValue

`public double[] getValue(int t)`

No conditioning on information available at time `t`. The time parameter is ignored.

Specified by:
`getValue` in class `RandomVector`
Parameters:
`t` - discrete time, ignored.

### nextSample

`public abstract void nextSample()`
Writes the next random sample of the vector of (approximate) Libors `U=(X_m(T_m),X_{m+1}(T_m),...,X_{n-1}(T_m))` into the array `this.X`.

### B_i0

`public double B_i0(int i)`
The zero coupon bond `B_i(0)=B(0,T_i)`.

Parameters:
`i` - bond matures at time `T_i`
``` ```
``` ```
``` B_iTm public double B_iTm(int i) The zero coupon bond B_i(T_m). Parameters:i - bond matures at time T_i, must satisfy T<=i. forwardTransport public double forwardTransport() Accrual factor 1/B(T_m,T_n)=1/B(n,m). This factor shifts a cashflow from time T_m to the horizon T_n with Libors in state at time T_m. S_pqTm public double S_pqTm(int p, int q) The forward swap rate S_pq(t)=k(t,[T_p,T_q]) at discrete time t=T_m. Parameters:p - swap begins at T_p, must satisfy m<=pq - swap ends at T_q (settled). S_pq0 public double S_pq0(int p, int q) The forward swap rate S_pq(t)=k(t,[T_p,T_q]) at time t=0. Parameters:p - swap begins at T_p.q - swap ends at T_q (settled). B_pqTm public double B_pqTm(int p, int q) The annuity B_pq(t)=sum_{k=p}^{q-1}delta_kB_{k+1}(t). at time t=T_m. Parameters:p - annuity begins at T_p.q - annuity ends at T_q (settled). B_pq0 public double B_pq0(int p, int q) The annuity B_pq(t)=sum_{k=p}^{q-1}delta_kB_{k+1}(t) at time t=0. Parameters:p - annuity begins at T_p.q - annuity ends at T_q (settled). Overview  Package   Class  Tree  Deprecated  Index  Help   PREV CLASS   NEXT CLASS FRAMES    NO FRAMES     <!-- if(window==top) { document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>'); } //--> All Classes SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD ```