Cbc  2.9.9
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Macros | Functions
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...
 

Macros

#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. More...
 
double sortedSparseDotProduct (const CoinPackedVectorBase &op1, const CoinPackedVectorBase &op2)
 Returns the dot product of two sorted CoinPackedVector objects. More...
 
void CoinPackedVectorUnitTest ()
 A function that tests the methods in the CoinPackedVector class. More...
 
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)
 
template<class BinaryFunction >
void binaryOp (CoinPackedVector &retVal, double value, const CoinPackedVectorBase &op2, BinaryFunction bf)
 
template<class BinaryFunction >
void binaryOp (CoinPackedVector &retVal, const CoinPackedVectorBase &op1, const CoinPackedVectorBase &op2, BinaryFunction bf)
 
template<class BinaryFunction >
CoinPackedVector binaryOp (const CoinPackedVectorBase &op1, double value, BinaryFunction bf)
 
template<class BinaryFunction >
CoinPackedVector binaryOp (double value, const CoinPackedVectorBase &op2, BinaryFunction bf)
 
template<class BinaryFunction >
CoinPackedVector binaryOp (const CoinPackedVectorBase &op1, const CoinPackedVectorBase &op2, BinaryFunction bf)
 
CoinPackedVector operator+ (const CoinPackedVectorBase &op1, const CoinPackedVectorBase &op2)
 Return the sum of two packed vectors. More...
 
CoinPackedVector operator- (const CoinPackedVectorBase &op1, const CoinPackedVectorBase &op2)
 Return the difference of two packed vectors. More...
 
CoinPackedVector operator* (const CoinPackedVectorBase &op1, const CoinPackedVectorBase &op2)
 Return the element-wise product of two packed vectors. More...
 
CoinPackedVector operator/ (const CoinPackedVectorBase &op1, const CoinPackedVectorBase &op2)
 Return the element-wise ratio of two packed vectors. More...
 
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. More...
 
CoinPackedVector operator- (const CoinPackedVectorBase &op1, double value)
 Return the difference of a packed vector and a constant. More...
 
CoinPackedVector operator* (const CoinPackedVectorBase &op1, double value)
 Return the element-wise product of a packed vector and a constant. More...
 
CoinPackedVector operator/ (const CoinPackedVectorBase &op1, double value)
 Return the element-wise ratio of a packed vector and a constant. More...
 
CoinPackedVector operator+ (double value, const CoinPackedVectorBase &op1)
 Return the sum of a constant and a packed vector. More...
 
CoinPackedVector operator- (double value, const CoinPackedVectorBase &op1)
 Return the difference of a constant and a packed vector. More...
 
CoinPackedVector operator* (double value, const CoinPackedVectorBase &op1)
 Return the element-wise product of a constant and a packed vector. More...
 
CoinPackedVector operator/ (double value, const CoinPackedVectorBase &op1)
 Return the element-wise ratio of a a constant and packed vector. More...
 

Macro Definition 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 
)

Definition at line 360 of file CoinPackedVector.hpp.

template<class BinaryFunction >
void binaryOp ( CoinPackedVector retVal,
double  value,
const CoinPackedVectorBase op2,
BinaryFunction  bf 
)
inline

Definition at line 377 of file CoinPackedVector.hpp.

template<class BinaryFunction >
void binaryOp ( CoinPackedVector retVal,
const CoinPackedVectorBase op1,
const CoinPackedVectorBase op2,
BinaryFunction  bf 
)

Definition at line 385 of file CoinPackedVector.hpp.

template<class BinaryFunction >
CoinPackedVector binaryOp ( const CoinPackedVectorBase op1,
double  value,
BinaryFunction  bf 
)

Definition at line 433 of file CoinPackedVector.hpp.

template<class BinaryFunction >
CoinPackedVector binaryOp ( double  value,
const CoinPackedVectorBase op2,
BinaryFunction  bf 
)

Definition at line 443 of file CoinPackedVector.hpp.

template<class BinaryFunction >
CoinPackedVector binaryOp ( const CoinPackedVectorBase op1,
const CoinPackedVectorBase op2,
BinaryFunction  bf 
)

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.