Transformation operations
[Collection of auxiliary useful vector operations.]

Collaboration diagram for Transformation operations:


Functions

void AbstractLinAlgPack::force_in_bounds (const Vector &xl, const Vector &xu, VectorMutable *x)
 Force a vector in bounds.
void AbstractLinAlgPack::force_in_bounds_buffer (const value_type rel_push, const value_type abs_push, const Vector &xl, const Vector &xu, VectorMutable *x)
 Force a vector sufficiently within bounds according to a specified absolute and relative buffer.
void AbstractLinAlgPack::inv_of_difference (const value_type alpha,const Vector &v0,const Vector &v1,VectorMutable *z)
 Computes the inverse of the difference between two vectors.
void AbstractLinAlgPack::correct_lower_bound_multipliers (const Vector &xl,const value_type inf_bound_limit,VectorMutable *vl)
 Corrects the lower bound multipliers with infinite bounds.
void AbstractLinAlgPack::correct_upper_bound_multipliers (const Vector &xu,const value_type inf_bound_limit,VectorMutable *vu)
 Corrects the upper bound multipliers with infinite bounds.
void AbstractLinAlgPack::lowerbound_multipliers_step (const value_type mu, const Vector &invXl, const Vector &vl, const Vector &d_k, VectorMutable *dvl)
 Calculates the multiplier step for lower bounds.
void AbstractLinAlgPack::upperbound_multipliers_step (const value_type mu, const Vector &invXu, const Vector &vu, const Vector &d_k, VectorMutable *dvu)
 Calculates the multiplier step for the upper bounds.
void AbstractLinAlgPack::ele_wise_sqrt (VectorMutable *z)
 Calculates the sqrt of each element in the vector Pre Condition: all elements of z must be positive.
void AbstractLinAlgPack::max_vec_scalar (value_type min_ele,VectorMutable *y)
 Take the maximum value of the vector elements and a scalar.
void AbstractLinAlgPack::max_abs_vec_scalar (value_type min_ele,VectorMutable *y)
 Take the maximum value of the absolute vector elements and a scalar.

Function Documentation

void AbstractLinAlgPack::force_in_bounds ( const Vector &  xl,
const Vector &  xu,
VectorMutable *  x 
)

Force a vector in bounds.

          / xl(i)  : if x(i) < xl(i)
  x(i) =  | x(i)   : if xl(i) <= x(i) <= xu(i)
          \ xu(i)  : if x(i) > xu(i)

  , for 1 = 1...n
 

Definition at line 390 of file AbstractLinAlgPack_VectorAuxiliaryOps.cpp.

void AbstractLinAlgPack::force_in_bounds_buffer ( const value_type  rel_push,
const value_type  abs_push,
const Vector &  xl,
const Vector &  xu,
VectorMutable *  x 
)

Force a vector sufficiently within bounds according to a specified absolute and relative buffer.

Definition at line 404 of file AbstractLinAlgPack_VectorAuxiliaryOps.cpp.

void AbstractLinAlgPack::inv_of_difference ( const value_type  alpha,
const Vector &  v0,
const Vector &  v1,
VectorMutable *  z 
)

Computes the inverse of the difference between two vectors.

 z(i) = alpha/(v0(i) - v1(i));
 

Definition at line 419 of file AbstractLinAlgPack_VectorAuxiliaryOps.cpp.

void AbstractLinAlgPack::correct_lower_bound_multipliers ( const Vector &  xl,
const value_type  inf_bound_limit,
VectorMutable *  vl 
)

Corrects the lower bound multipliers with infinite bounds.

 vl(i) = (xl(i) <= inf_bound_limit) ? 0.0 : v(i);
 

Definition at line 432 of file AbstractLinAlgPack_VectorAuxiliaryOps.cpp.

void AbstractLinAlgPack::correct_upper_bound_multipliers ( const Vector &  xu,
const value_type  inf_bound_limit,
VectorMutable *  vu 
)

Corrects the upper bound multipliers with infinite bounds.

 vl(i) = (xu(i) >= inf_bound_limit) ? 0.0 : v(i);
 

Definition at line 444 of file AbstractLinAlgPack_VectorAuxiliaryOps.cpp.

void AbstractLinAlgPack::lowerbound_multipliers_step ( const value_type  mu,
const Vector &  invXl,
const Vector &  vl,
const Vector &  d_k,
VectorMutable *  dvl 
)

Calculates the multiplier step for lower bounds.

dvl(i) = -vl(i) + mu*invXl(i)*e - invXl(i)*Vl(i)*d_k(i)

Definition at line 456 of file AbstractLinAlgPack_VectorAuxiliaryOps.cpp.

void AbstractLinAlgPack::upperbound_multipliers_step ( const value_type  mu,
const Vector &  invXu,
const Vector &  vu,
const Vector &  d_k,
VectorMutable *  dvu 
)

Calculates the multiplier step for the upper bounds.

dvu(i) = -vu(i) + mu*invXl(i)*e + invXl(i)*Vl(i)*d_k(i)

Definition at line 470 of file AbstractLinAlgPack_VectorAuxiliaryOps.cpp.

void AbstractLinAlgPack::ele_wise_sqrt ( VectorMutable *  z  ) 

Calculates the sqrt of each element in the vector Pre Condition: all elements of z must be positive.

 z(i) = sqrt(z(i));
 

Definition at line 484 of file AbstractLinAlgPack_VectorAuxiliaryOps.cpp.

void AbstractLinAlgPack::max_vec_scalar ( value_type  min_ele,
VectorMutable *  y 
)

Take the maximum value of the vector elements and a scalar.

 y(i) = max( y(i), min_ele ), for i = 1...n
 

Definition at line 492 of file AbstractLinAlgPack_VectorAuxiliaryOps.cpp.

void AbstractLinAlgPack::max_abs_vec_scalar ( value_type  min_ele,
VectorMutable *  y 
)

Take the maximum value of the absolute vector elements and a scalar.

 y(i) = max( fabs(y(i)), min_ele ), for i = 1...n
 

Definition at line 503 of file AbstractLinAlgPack_VectorAuxiliaryOps.cpp.


Generated on Tue Jul 13 09:28:55 2010 for AbstractLinAlgPack: C++ Interfaces For Vectors, Matrices And Related Linear Algebra Objects by  doxygen 1.4.7