6 #ifndef CoinPackedVector_H
7 #define CoinPackedVector_H
16 #ifndef COIN_NOTEST_DUPLICATE
17 #define COIN_NOTEST_DUPLICATE
21 #ifndef COIN_NOTEST_DUPLICATE
22 #define COIN_DEFAULT_VALUE_FOR_DUPLICATE true
24 #define COIN_DEFAULT_VALUE_FOR_DUPLICATE false
183 void setVector(
int size,
const int * inds,
const double * elems,
187 void setConstant(
int size,
const int * inds,
double elems,
191 void setFull(
int size,
const double * elems,
205 void insert(
int index,
double element);
210 void swap(
int i,
int j);
238 template <
class CoinCompare3>
239 void sort(
const CoinCompare3 & tc)
316 const int * inds,
const double * elems,
318 const char * method);
321 const int * inds,
double value,
323 const char * method);
359 template <
class BinaryFunction>
void
370 for (
int i=0; i<s; ++i ) {
371 retVal.
insert(inds[i], bf(value, elems[i]));
376 template <
class BinaryFunction>
inline void
384 template <
class BinaryFunction>
void
398 if (s1 == 0 && s2 == 0)
410 for ( i=0; i<s1; ++i ) {
411 const int index = inds1[i];
413 const double val = bf(elems1[i], pos2 == -1 ? 0.0 : elems2[pos2]);
415 retVal.
insert(index, val);
418 for ( i=0; i<s2; ++i ) {
419 const int index = inds2[i];
424 const double val = bf(0.0, elems2[i]);
426 retVal.
insert(index, val);
469 binaryOp(retVal, op1, op2, std::plus<double>());
479 binaryOp(retVal, op1, op2, std::minus<double>());
489 binaryOp(retVal, op1, op2, std::multiplies<double>());
499 binaryOp(retVal, op1, op2, std::divides<double>());
516 for(i = 0; i < len; i++){
527 int i, j, len1, len2;
541 while(i < len1 && j < len2){
542 if(v1ind[i] == v2ind[j]){
543 acc += v1val[i] * v2val[j];
547 else if(v2ind[j] < v1ind[i]){
619 for (
int i = 0; i < size; ++i) {
620 elems[i] = value - elems[i];
641 for (
int i = 0; i < size; ++i) {
642 elems[i] = value / elems[i];