# /home/coin/svn-release/Alps-1.5.0/CoinUtils/src/CoinPackedVector.hpp File Reference

`#include <map>`
`#include "CoinPragma.hpp"`
`#include "CoinPackedVectorBase.hpp"`
`#include "CoinSort.hpp"`
Include dependency graph for CoinPackedVector.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Classes
class | CoinPackedVector
| Sparse Vector. More...
## Defines
#define | COIN_DEFAULT_VALUE_FOR_DUPLICATE true
## Functions
double | sparseDotProduct (const CoinPackedVectorBase &op1, const CoinPackedVectorBase &op2)
| Returns the dot product of two CoinPackedVector objects whose elements are doubles.
double | sortedSparseDotProduct (const CoinPackedVectorBase &op1, const CoinPackedVectorBase &op2)
| Returns the dot product of two sorted CoinPackedVector objects.
void | CoinPackedVectorUnitTest ()
| A function that tests the methods in the CoinPackedVector class.
Arithmetic operators on packed vectors.
NOTE: These methods operate on those positions where at least one of the arguments has a value listed. At those positions the appropriate operation is executed, Otherwise the result of the operation is considered 0. NOTE 2: There are two kind of operators here. One is used like "c = binaryOp(a, b)", the other is used like "binaryOp(c, a, b)", but they are really the same. The first is much more natural to use, but it involves the creation of a temporary object (the function *must* return an object), while the second form puts the result directly into the argument "c". Therefore, depending on the circumstances, the second form can be significantly faster.
template<class BinaryFunction >
void | binaryOp (CoinPackedVector &retVal, const CoinPackedVectorBase &op1, double value, BinaryFunction bf)
| Return the sum of two packed vectors.
template<class BinaryFunction >
void | binaryOp (CoinPackedVector &retVal, double value, const CoinPackedVectorBase &op2, BinaryFunction bf)
| Return the sum of two packed vectors.
template<class BinaryFunction >
void | binaryOp (CoinPackedVector &retVal, const CoinPackedVectorBase &op1, const CoinPackedVectorBase &op2, BinaryFunction bf)
| Return the sum of two packed vectors.
template<class BinaryFunction >
CoinPackedVector | binaryOp (const CoinPackedVectorBase &op1, double value, BinaryFunction bf)
| Return the sum of two packed vectors.
template<class BinaryFunction >
CoinPackedVector | binaryOp (double value, const CoinPackedVectorBase &op2, BinaryFunction bf)
| Return the sum of two packed vectors.
template<class BinaryFunction >
CoinPackedVector | binaryOp (const CoinPackedVectorBase &op1, const CoinPackedVectorBase &op2, BinaryFunction bf)
| Return the sum of two packed vectors.
CoinPackedVector | operator+ (const CoinPackedVectorBase &op1, const CoinPackedVectorBase &op2)
| Return the sum of two packed vectors.
CoinPackedVector | operator- (const CoinPackedVectorBase &op1, const CoinPackedVectorBase &op2)
| Return the difference of two packed vectors.
CoinPackedVector | operator* (const CoinPackedVectorBase &op1, const CoinPackedVectorBase &op2)
| Return the element-wise product of two packed vectors.
CoinPackedVector | operator/ (const CoinPackedVectorBase &op1, const CoinPackedVectorBase &op2)
| Return the element-wise ratio of two packed vectors.
Arithmetic operators on packed vector and a constant. <br>
These functions create a packed vector as a result. That packed vector will have the same indices as `op1` and the specified operation is done entry-wise with the given value.
CoinPackedVector | operator+ (const CoinPackedVectorBase &op1, double value)
| Return the sum of a packed vector and a constant.
CoinPackedVector | operator- (const CoinPackedVectorBase &op1, double value)
| Return the difference of a packed vector and a constant.
CoinPackedVector | operator* (const CoinPackedVectorBase &op1, double value)
| Return the element-wise product of a packed vector and a constant.
CoinPackedVector | operator/ (const CoinPackedVectorBase &op1, double value)
| Return the element-wise ratio of a packed vector and a constant.
CoinPackedVector | operator+ (double value, const CoinPackedVectorBase &op1)
| Return the sum of a constant and a packed vector.
CoinPackedVector | operator- (double value, const CoinPackedVectorBase &op1)
| Return the difference of a constant and a packed vector.
CoinPackedVector | operator* (double value, const CoinPackedVectorBase &op1)
| Return the element-wise product of a constant and a packed vector.
CoinPackedVector | operator/ (double value, const CoinPackedVectorBase &op1)
| Return the element-wise ratio of a a constant and packed vector.

## Define Documentation

#define COIN_DEFAULT_VALUE_FOR_DUPLICATE true

Definition at line 22 of file CoinPackedVector.hpp.

## Function Documentation

template<class BinaryFunction >

void binaryOp | ( | CoinPackedVector & | retVal,
|  | const CoinPackedVectorBase & | op1,
|  | double | value,
|  | BinaryFunction | bf |
| ) |  |  | `[inline]`

Return the sum of two packed vectors.

Definition at line 360 of file CoinPackedVector.hpp.

template<class BinaryFunction >

void binaryOp | ( | CoinPackedVector & | retVal,
|  | double | value,
|  | const CoinPackedVectorBase & | op2,
|  | BinaryFunction | bf |
| ) |  |  | `[inline]`

Return the sum of two packed vectors.

Definition at line 377 of file CoinPackedVector.hpp.

template<class BinaryFunction >

void binaryOp | ( | CoinPackedVector & | retVal,
|  | const CoinPackedVectorBase & | op1,
|  | const CoinPackedVectorBase & | op2,
|  | BinaryFunction | bf |
| ) |  |  | `[inline]`

Return the sum of two packed vectors.

Definition at line 385 of file CoinPackedVector.hpp.

template<class BinaryFunction >

CoinPackedVector binaryOp | ( | const CoinPackedVectorBase & | op1,
|  | double | value,
|  | BinaryFunction | bf |
| ) |  |  | `[inline]`

Return the sum of two packed vectors.

Definition at line 433 of file CoinPackedVector.hpp.

template<class BinaryFunction >

CoinPackedVector binaryOp | ( | double | value,
|  | const CoinPackedVectorBase & | op2,
|  | BinaryFunction | bf |
| ) |  |  | `[inline]`

Return the sum of two packed vectors.

Definition at line 443 of file CoinPackedVector.hpp.

template<class BinaryFunction >

CoinPackedVector binaryOp | ( | const CoinPackedVectorBase & | op1,
|  | const CoinPackedVectorBase & | op2,
|  | BinaryFunction | bf |
| ) |  |  | `[inline]`

Return the sum of two packed vectors.

Definition at line 453 of file CoinPackedVector.hpp.

CoinPackedVector operator+ | ( | const CoinPackedVectorBase & | op1,
|  | const CoinPackedVectorBase & | op2 |
| ) |  |  | `[inline]`

Return the sum of two packed vectors.

Definition at line 464 of file CoinPackedVector.hpp.

CoinPackedVector operator- | ( | const CoinPackedVectorBase & | op1,
|  | const CoinPackedVectorBase & | op2 |
| ) |  |  | `[inline]`

Return the difference of two packed vectors.

Definition at line 474 of file CoinPackedVector.hpp.

CoinPackedVector operator* | ( | const CoinPackedVectorBase & | op1,
|  | const CoinPackedVectorBase & | op2 |
| ) |  |  | `[inline]`

Return the element-wise product of two packed vectors.

Definition at line 484 of file CoinPackedVector.hpp.

CoinPackedVector operator/ | ( | const CoinPackedVectorBase & | op1,
|  | const CoinPackedVectorBase & | op2 |
| ) |  |  | `[inline]`

Return the element-wise ratio of two packed vectors.

Definition at line 494 of file CoinPackedVector.hpp.

double sparseDotProduct | ( | const CoinPackedVectorBase & | op1,
|  | const CoinPackedVectorBase & | op2 |
| ) |  |  | `[inline]`

Returns the dot product of two CoinPackedVector objects whose elements are doubles.

Use this version if the vectors are *not* guaranteed to be sorted.

Definition at line 506 of file CoinPackedVector.hpp.

double sortedSparseDotProduct | ( | const CoinPackedVectorBase & | op1,
|  | const CoinPackedVectorBase & | op2 |
| ) |  |  | `[inline]`

Returns the dot product of two sorted CoinPackedVector objects.

The vectors should be sorted in ascending order of indices.

Definition at line 525 of file CoinPackedVector.hpp.

CoinPackedVector operator+ | ( | const CoinPackedVectorBase & | op1,
|  | double | value |
| ) |  |  | `[inline]`

Return the sum of a packed vector and a constant.

Definition at line 567 of file CoinPackedVector.hpp.

CoinPackedVector operator- | ( | const CoinPackedVectorBase & | op1,
|  | double | value |
| ) |  |  | `[inline]`

Return the difference of a packed vector and a constant.

Definition at line 576 of file CoinPackedVector.hpp.

CoinPackedVector operator* | ( | const CoinPackedVectorBase & | op1,
|  | double | value |
| ) |  |  | `[inline]`

Return the element-wise product of a packed vector and a constant.

Definition at line 585 of file CoinPackedVector.hpp.

CoinPackedVector operator/ | ( | const CoinPackedVectorBase & | op1,
|  | double | value |
| ) |  |  | `[inline]`

Return the element-wise ratio of a packed vector and a constant.

Definition at line 594 of file CoinPackedVector.hpp.

CoinPackedVector operator+ | ( | double | value,
|  | const CoinPackedVectorBase & | op1 |
| ) |  |  | `[inline]`

Return the sum of a constant and a packed vector.

Definition at line 605 of file CoinPackedVector.hpp.

CoinPackedVector operator- | ( | double | value,
|  | const CoinPackedVectorBase & | op1 |
| ) |  |  | `[inline]`

Return the difference of a constant and a packed vector.

Definition at line 614 of file CoinPackedVector.hpp.

CoinPackedVector operator* | ( | double | value,
|  | const CoinPackedVectorBase & | op1 |
| ) |  |  | `[inline]`

Return the element-wise product of a constant and a packed vector.

Definition at line 627 of file CoinPackedVector.hpp.

CoinPackedVector operator/ | ( | double | value,
|  | const CoinPackedVectorBase & | op1 |
| ) |  |  | `[inline]`

Return the element-wise ratio of a a constant and packed vector.

Definition at line 636 of file CoinPackedVector.hpp.

void CoinPackedVectorUnitTest | ( |  | ) |

A function that tests the methods in the CoinPackedVector class.

The only reason for it not to be a member method is that this way it doesn't have to be compiled into the library. And that's a gain, because the library should be compiled with optimization on, but this method should be compiled with debugging.