RTOp_TOp_force_in_bounds.c File Reference

#include "RTOp_TOp_force_in_bounds.h"
#include "RTOp_obj_null_vtbl.h"
#include "RTOp_obj_value_value_vtbl.h"

Include dependency graph for RTOp_TOp_force_in_bounds.c:

Go to the source code of this file.

Defines

#define max(a, b)   ( (a) > (b) ? (a) : (b) )
#define min(a, b)   ( (a) < (b) ? (a) : (b) )

Functions

static int RTOp_TOp_force_in_bounds_apply_op (const struct RTOp_RTOp_vtbl_t *vtbl, const void *obj_data, const int num_vecs, const struct RTOp_SubVector vecs[], const int num_targ_vecs, const struct RTOp_MutableSubVector targ_vecs[], RTOp_ReductTarget targ_obj)
int RTOp_TOp_force_in_bounds_construct (struct RTOp_RTOp *op)
int RTOp_TOp_force_in_bounds_destroy (struct RTOp_RTOp *op)
static int RTOp_TOp_force_in_bounds_buffer_apply_op (const struct RTOp_RTOp_vtbl_t *vtbl, const void *obj_data, const int num_vecs, const struct RTOp_SubVector vecs[], const int num_targ_vecs, const struct RTOp_MutableSubVector targ_vecs[], RTOp_ReductTarget reduct_obj)
int RTOp_TOp_force_in_bounds_buffer_construct (RTOp_value_type rel_push, RTOp_value_type abs_push, struct RTOp_RTOp *op)
int RTOp_TOp_force_in_bounds_buffer_destroy (struct RTOp_RTOp *op)
int RTOp_TOp_force_in_bounds_buffer_init (RTOp_value_type rel_push, RTOp_value_type abs_push, struct RTOp_RTOp *op)

Variables

RTOp_RTOp_vtbl_t RTOp_TOp_force_in_bounds_vtbl
RTOp_RTOp_vtbl_t RTOp_TOp_force_in_bounds_buffer_vtbl


Define Documentation

#define max ( a,
 )     ( (a) > (b) ? (a) : (b) )

Definition at line 35 of file RTOp_TOp_force_in_bounds.c.

#define min ( a,
 )     ( (a) < (b) ? (a) : (b) )

Definition at line 36 of file RTOp_TOp_force_in_bounds.c.


Function Documentation

static int RTOp_TOp_force_in_bounds_apply_op ( const struct RTOp_RTOp_vtbl_t vtbl,
const void *  obj_data,
const int  num_vecs,
const struct RTOp_SubVector  vecs[],
const int  num_targ_vecs,
const struct RTOp_MutableSubVector  targ_vecs[],
RTOp_ReductTarget  targ_obj 
) [static]

Definition at line 40 of file RTOp_TOp_force_in_bounds.c.

int RTOp_TOp_force_in_bounds_construct ( struct RTOp_RTOp op  ) 

Definition at line 121 of file RTOp_TOp_force_in_bounds.c.

int RTOp_TOp_force_in_bounds_destroy ( struct RTOp_RTOp op  ) 

Definition at line 128 of file RTOp_TOp_force_in_bounds.c.

static int RTOp_TOp_force_in_bounds_buffer_apply_op ( const struct RTOp_RTOp_vtbl_t vtbl,
const void *  obj_data,
const int  num_vecs,
const struct RTOp_SubVector  vecs[],
const int  num_targ_vecs,
const struct RTOp_MutableSubVector  targ_vecs[],
RTOp_ReductTarget  reduct_obj 
) [static]

Definition at line 137 of file RTOp_TOp_force_in_bounds.c.

int RTOp_TOp_force_in_bounds_buffer_construct ( RTOp_value_type  rel_push,
RTOp_value_type  abs_push,
struct RTOp_RTOp op 
)

Definition at line 235 of file RTOp_TOp_force_in_bounds.c.

int RTOp_TOp_force_in_bounds_buffer_destroy ( struct RTOp_RTOp op  ) 

Definition at line 246 of file RTOp_TOp_force_in_bounds.c.

int RTOp_TOp_force_in_bounds_buffer_init ( RTOp_value_type  rel_push,
RTOp_value_type  abs_push,
struct RTOp_RTOp op 
)

Definition at line 254 of file RTOp_TOp_force_in_bounds.c.


Variable Documentation

struct RTOp_RTOp_vtbl_t RTOp_TOp_force_in_bounds_vtbl

Initial value:

{
  &RTOp_obj_null_vtbl  
  ,&RTOp_obj_null_vtbl 
  ,"TOp_force_in_bounds"
  ,NULL 
  ,RTOp_TOp_force_in_bounds_apply_op
  ,NULL
  ,NULL
}

Definition at line 108 of file RTOp_TOp_force_in_bounds.c.

struct RTOp_RTOp_vtbl_t RTOp_TOp_force_in_bounds_buffer_vtbl

Initial value:

{
  &RTOp_obj_value_value_vtbl
  ,&RTOp_obj_null_vtbl
  ,"TOp_force_in_bounds_buffer"
  ,NULL
  ,RTOp_TOp_force_in_bounds_buffer_apply_op
  ,NULL
  ,NULL
}
This operator is used by the interior point algorithm to push initial variables sufficiently inside the bounds since the algorithm assumes that they are ALWAYS within bounds.

element-wise transformation:
    xl_sb = min(v0 + rel_push*(v1-v0), v0 + abs_push);
    xu_sb = max(v1 - rel_push*(v1-v0), v1 - abs_push);
    if (xl_sb >= xu_sb)
        { z0 = v0 + (v1-v0)/2.0; }
    else if (z0 < xl_sb)
        { z0 = xl_sb; }
    else if (z0 > xu_sb)
        { z0 = xu_sb; }
    // Otherwise, leave it

 

This operator class implementation was created automatically by 'new_rtop.pl'.

xl_sb = min(xl+relative_bound_push*(xu-xl), xl + absolute_bound_push) xu_sb = max(xu-relative_bound_push*(xu-xl), xu - absolute_bound_push) if (xl_sb > xu_sb) then x = (xl + (xu-xl)/2 else if (x < xl_sb) then x = xl_sb else if (x > xu_sb) then x = xu_sb

Definition at line 222 of file RTOp_TOp_force_in_bounds.c.


Generated on Wed May 12 21:56:29 2010 for MOOCHO (Single Doxygen Collection) by  doxygen 1.4.7