### A free/open-source library for quantitative finance

Public Types | Related Functions
Array Class Reference

1-D array used in linear algebra. More...

`#include <ql/math/array.hpp>`

List of all members.

## Public Types

typedef Size | size_type
typedef Real | value_type
typedef Real * | iterator
typedef const Real * | const_iterator
typedef boost::reverse_iterator < iterator > | reverse_iterator
typedef boost::reverse_iterator < const_iterator > | const_reverse_iterator

## Public Member Functions

Constructors, destructor, and assignment
| Array (Size size=0)
| creates the array with the given dimension
| Array (Size size, Real value)
| creates the array and fills it with `value`
| Array (Size size, Real value, Real increment)
| creates the array and fills it according to
| Array (const Array &)
| Array (const Disposable< Array > &)
template<class ForwardIterator >
| Array (ForwardIterator begin, ForwardIterator end)
| creates the array from an iterable sequence
Array & | operator= (const Array &)
Array & | operator= (const Disposable< Array > &)
bool | operator== (const Array &) const
bool | operator!= (const Array &) const
Vector algebra

`v += x` and similar operation involving a scalar value are shortcuts for

`v *= w` and similar operation involving two vectors are shortcuts for

Precondition:
  all arrays involved in an algebraic expression must have the same size.

const Array & | operator+= (const Array &)
const Array & | operator+= (Real)
const Array & | operator-= (const Array &)
const Array & | operator-= (Real)
const Array & | operator*= (const Array &)
const Array & | operator*= (Real)
const Array & | operator/= (const Array &)
const Array & | operator/= (Real)
Element access
Real | operator[] (Size) const
| read-only
Real | at (Size) const
Real | front () const
Real | back () const
Real & | operator[] (Size)
| read-write
Real & | at (Size)
Real & | front ()
Real & | back ()
Inspectors
Size | size () const
| dimension of the array
bool | empty () const
| whether the array is empty
Iterator access
const_iterator | begin () const
iterator | begin ()
const_iterator | end () const
iterator | end ()
const_reverse_iterator | rbegin () const
reverse_iterator | rbegin ()
const_reverse_iterator | rend () const
reverse_iterator | rend ()
Utilities
void | swap (Array &)

## Related Functions

(Note that these are not member functions.)
Real | DotProduct (const Array &, const Array &)
const Disposable< Array > | operator+ (const Array &v)
const Disposable< Array > | operator- (const Array &v)
const Disposable< Array > | operator+ (const Array &, const Array &)
const Disposable< Array > | operator+ (const Array &, Real)
const Disposable< Array > | operator+ (Real, const Array &)
const Disposable< Array > | operator- (const Array &, const Array &)
const Disposable< Array > | operator- (const Array &, Real)
const Disposable< Array > | operator- (Real, const Array &)
const Disposable< Array > | operator* (const Array &, const Array &)
const Disposable< Array > | operator* (const Array &, Real)
const Disposable< Array > | operator* (Real, const Array &)
const Disposable< Array > | operator/ (const Array &, const Array &)
const Disposable< Array > | operator/ (const Array &, Real)
const Disposable< Array > | operator/ (Real, const Array &)
const Disposable< Array > | Abs (const Array &)
const Disposable< Array > | Sqrt (const Array &)
const Disposable< Array > | Log (const Array &)
const Disposable< Array > | Exp (const Array &)
void | swap (Array &, Array &)
std::ostream & | operator<< (std::ostream &, const Array &)

## Detailed Description

1-D array used in linear algebra.

This class implements the concept of vector as used in linear algebra. As such, it is not meant to be used as a container - `std::vector` should be used instead.

Tests:
  construction of arrays is checked in a number of cases

## Friends And Related Function Documentation

Real DotProduct | ( | const Array & | ,
|  | const Array & |
| ) |  | `[related]`

const Disposable< Array > operator+ | ( | const Array & | v | ) | `[related]`

const Disposable< Array > operator- | ( | const Array & | v | ) | `[related]`

const Disposable< Array > operator+ | ( | const Array & | ,
|  | const Array & |
| ) |  | `[related]`

const Disposable< Array > operator+ | ( | const Array & | ,
|  | Real |
| ) |  | `[related]`

const Disposable< Array > operator+ | ( | Real | ,
|  | const Array & |
| ) |  | `[related]`

const Disposable< Array > operator- | ( | const Array & | ,
|  | const Array & |
| ) |  | `[related]`

const Disposable< Array > operator- | ( | const Array & | ,
|  | Real |
| ) |  | `[related]`

const Disposable< Array > operator- | ( | Real | ,
|  | const Array & |
| ) |  | `[related]`

const Disposable< Array > operator* | ( | const Array & | ,
|  | const Array & |
| ) |  | `[related]`

const Disposable< Array > operator* | ( | const Array & | ,
|  | Real |
| ) |  | `[related]`

const Disposable< Array > operator* | ( | Real | ,
|  | const Array & |
| ) |  | `[related]`

const Disposable< Array > operator/ | ( | const Array & | ,
|  | const Array & |
| ) |  | `[related]`

const Disposable< Array > operator/ | ( | const Array & | ,
|  | Real |
| ) |  | `[related]`

const Disposable< Array > operator/ | ( | Real | ,
|  | const Array & |
| ) |  | `[related]`

const Disposable< Array > Abs | ( | const Array & |  | ) | `[related]`

const Disposable< Array > Sqrt | ( | const Array & |  | ) | `[related]`

const Disposable< Array > Log | ( | const Array & |  | ) | `[related]`

const Disposable< Array > Exp | ( | const Array & |  | ) | `[related]`

void swap | ( | Array & | ,
|  | Array & |
| ) |  | `[related]`

std::ostream & operator<< | ( | std::ostream & | ,
|  | const Array & |
| ) |  | `[related]`