SYSTEM_OF_EQUATIONS Module Reference

#include <soe.h>

Collaboration diagram for SYSTEM_OF_EQUATIONS:

Collaboration graph
[legend]

Public Member Functions

 SYSTEM_OF_EQUATIONS (INT32 eqns_le, INT32 eqns_eq, INT32 vars, MEM_POOL *pool)
 SYSTEM_OF_EQUATIONS (const SYSTEM_OF_EQUATIONS *soe, MEM_POOL *pool)
 ~SYSTEM_OF_EQUATIONS ()
INT32 Num_Eq_Constraints () const
INT32 Num_Le_Constraints () const
INT32 Num_Vars () const
void Add_Eq (const mINT32 row[], INT64 b)
void Add_Eq (INT num_rows)
void Add_Le (const mINT32 row[], INT64 b)
BOOL Add_Le_Non_Redundant (const mINT32 row[], INT64 b)
void Add_Le (INT num_rows)
void Add_Vars (const INT32 num_vars)
void Add_Soe (const SYSTEM_OF_EQUATIONS *soe)
void Zero_Row_Le (INT32 r)
void Complement_Le (INT32 r)
INT32 Leftmost_Non_Zero_Le (INT32 r) const
void Sort_Le (INT *sort_criteria, BOOL descending=FALSE)
void Remove_Last_Eq (INT how_many=1)
void Remove_Last_Le (INT how_many=1)
void Remove_Eq_Number (INT which)
void Remove_Le_Number (INT which)
void Remove_Last_Vars (INT num_vars)
void Reset_To (INT32 nrows_le, INT32 nrows_eq, INT32 ncols)
BOOL Is_Consistent ()
void Mark_Redundant (BOOL *is_redundant)
INT16 Mark_Simple_Redundant (BOOL *is_redundant)
INT16 Mark_New_Redundant (BOOL *is_redundant)
BOOL Copy_To_Work ()
void Add_Work_Le ()
void Add_Work_Le_Non_Simple_Redundant ()
BOOL Sub_In_Equal (BOOL *proved_inconsistent)
INT Change_Base (const INT32 dim, const INT32 pos, MEM_POOL *pool)
void Take_Gcds ()
const IMATAeq () const
IMATAeq ()
const IMATAle () const
IMATAle ()
mINT64Beq ()
const mINT64Beq () const
mINT64Ble ()
const mINT64Ble () const
mINT32 Work (const INT32 i, const INT32 j) const
mINT64 Work_Const (const INT32 i) const
mINT32 Work_Constraints () const
INT32 Simple_Redundant (const INT32 r1, const INT32 r2)
BOOL Prove_Redundant (const INT set, const INT dim)
BOOL Is_Consistent_Work ()
MEM_POOLPool () const
void Print (FILE *fp) const

Static Public Member Functions

static BOOL Project (const INT32 i, BOOL *proved_inconsistent, const INT32 min_var=0)
static void Elim_Simple_Redundant (const INT32 min_var=0)
static void Print_Work (FILE *fp)

Private Member Functions

INT32 ROW_INCR () const
SYSTEM_OF_EQUATIONSoperator= (const SYSTEM_OF_EQUATIONS &)
 SYSTEM_OF_EQUATIONS (const SYSTEM_OF_EQUATIONS &)
 SYSTEM_OF_EQUATIONS ()
BOOL Copy_To_Work (const INT32 from, const INT32 to)
BOOL Copy_Inverse_To_Work (const INT32 i)
BOOL One_Var_Consistent (INT32 var, INT32 from, INT32 to)
void SVPC_Set_Bound (INT32 i, INT32 var)
SVPC_RESULT SVPC ()
ACY_RESULT Acyclic_Test ()
INT Var_Leaf (INT i, INT *sign)
void Acy_Set_Var (INT i, INT32_INFIN val, BOOL *inconsistent)
BOOL Copy_To_Work_Eq ()
BOOL Sub_Last_Equal (BOOL *proved_inconsistent)
BOOL Sub_Last_Equal_Unary (const INT32 i, const INT32 minvar)
INT32 Normalize_Eq_and_Find_Smallest (INT32, INT32, BOOL *)
INT32 Mod_Hat (INT32 a, INT32 b)
BOOL Add_Work_Var ()
void Gcd_Normalize ()

Static Private Member Functions

static BOOL Elim_One (const INT32 i, const INT32 plus, const INT32 minus, BOOL *proved_inconsistent, const INT32 min_var)
static INT32 Is_Simple_Redundant (const INT32 *row1, const INT32 *row2, INT64 row1c, INT64 row2c, INT min_var, INT cols)
static INT32 Simple_Redundant (const INT32 *row1, const INT32 *row2, INT64 row1c, INT64 row2c, INT min_var, INT cols)

Private Attributes

IMAT _Ale
IMAT _Aeq
mINT64_ble
mINT64_beq
MEM_POOL_pool
mINT32 _eqns_le
mINT32 _eqns_le_stored
mINT32 _eqns_eq
mINT32 _eqns_eq_stored
mINT32 _vars

Static Private Attributes

static mINT32 _work [SOE_MAX_WORK_ROWS][SOE_MAX_WORK_COLS]
static mINT64 _work_const [SOE_MAX_WORK_ROWS]
static mINT32 _work_rows
static mINT32 _work_cols
static BOOL _is_redundant [SOE_MAX_WORK_ROWS]
static BOOL _is_svpc [SOE_MAX_WORK_ROWS]
static mINT32 _work_eq [SOE_MAX_WORK_ROWS_EQ][SOE_MAX_WORK_COLS]
static mINT64 _work_const_eq [SOE_MAX_WORK_ROWS_EQ]
static mINT32 _work_rows_eq
static INT32_INFIN _lower_bound [SOE_MAX_WORK_COLS]
static INT32_INFIN _upper_bound [SOE_MAX_WORK_COLS]

Detailed Description

Definition at line 334 of file soe.h.


Constructor & Destructor Documentation

SYSTEM_OF_EQUATIONS::SYSTEM_OF_EQUATIONS ( INT32  eqns_le,
INT32  eqns_eq,
INT32  vars,
MEM_POOL pool 
) [inline]

SYSTEM_OF_EQUATIONS::SYSTEM_OF_EQUATIONS ( const SYSTEM_OF_EQUATIONS soe,
MEM_POOL pool 
)

Definition at line 169 of file soe.cxx.

References _beq, _ble, _eqns_eq, _eqns_eq_stored, _eqns_le, _eqns_le_stored, _pool, _vars, CXX_NEW_ARRAY, i, INT32, and mINT64.

SYSTEM_OF_EQUATIONS::~SYSTEM_OF_EQUATIONS (  )  [inline]

Definition at line 349 of file soe.h.

References _beq, _ble, _pool, and CXX_DELETE_ARRAY.

SYSTEM_OF_EQUATIONS::SYSTEM_OF_EQUATIONS ( const SYSTEM_OF_EQUATIONS  )  [private]

SYSTEM_OF_EQUATIONS::SYSTEM_OF_EQUATIONS (  )  [private]


Member Function/Subroutine Documentation

INT32 SYSTEM_OF_EQUATIONS::Num_Eq_Constraints (  )  const [inline]

INT32 SYSTEM_OF_EQUATIONS::Num_Le_Constraints (  )  const [inline]

INT32 SYSTEM_OF_EQUATIONS::Num_Vars (  )  const [inline]

void SYSTEM_OF_EQUATIONS::Add_Eq ( const mINT32  row[],
INT64  b 
)

void SYSTEM_OF_EQUATIONS::Add_Eq ( INT  num_rows  ) 

void SYSTEM_OF_EQUATIONS::Add_Le ( const mINT32  row[],
INT64  b 
)

BOOL SYSTEM_OF_EQUATIONS::Add_Le_Non_Redundant ( const mINT32  row[],
INT64  b 
)

Definition at line 287 of file soe.cxx.

References Add_Le(), BOOL, Complement_Le(), FALSE, INT, Is_Consistent(), Num_Le_Constraints(), Remove_Last_Le(), and TRUE.

Referenced by Row_Echelon().

void SYSTEM_OF_EQUATIONS::Add_Le ( INT  num_rows  ) 

void SYSTEM_OF_EQUATIONS::Add_Vars ( const INT32  num_vars  ) 

void SYSTEM_OF_EQUATIONS::Add_Soe ( const SYSTEM_OF_EQUATIONS soe  ) 

void SYSTEM_OF_EQUATIONS::Zero_Row_Le ( INT32  r  ) 

Definition at line 333 of file soe.cxx.

References _Ale, _ble, c, INT32, and Num_Vars().

Referenced by SNL_GEN_U_Ctiling().

void SYSTEM_OF_EQUATIONS::Complement_Le ( INT32  r  ) 

Definition at line 340 of file soe.cxx.

References _Ale, _ble, c, INT32, and Num_Vars().

Referenced by Add_Le_Non_Redundant().

INT32 SYSTEM_OF_EQUATIONS::Leftmost_Non_Zero_Le ( INT32  r  )  const

Definition at line 347 of file soe.cxx.

References _Ale, c, INT32, and Num_Vars().

void SYSTEM_OF_EQUATIONS::Sort_Le ( INT sort_criteria,
BOOL  descending = FALSE 
)

Definition at line 356 of file soe.cxx.

References _Ale, _ble, c, i, INT, INT32, INT64, Num_Le_Constraints(), Num_Vars(), and tmp.

Referenced by Region_Intersect(), and Row_Echelon().

void SYSTEM_OF_EQUATIONS::Remove_Last_Eq ( INT  how_many = 1  )  [inline]

Definition at line 369 of file soe.h.

References _eqns_eq.

Referenced by DEPV_COMPUTE::Compute_Dep_Vectors(), and Reset_To().

void SYSTEM_OF_EQUATIONS::Remove_Last_Le ( INT  how_many = 1  )  [inline]

void SYSTEM_OF_EQUATIONS::Remove_Eq_Number ( INT  which  ) 

Definition at line 1534 of file soe.cxx.

References _eqns_eq, _vars, Aeq(), Beq(), i, and INT.

void SYSTEM_OF_EQUATIONS::Remove_Le_Number ( INT  which  ) 

Definition at line 1544 of file soe.cxx.

References _eqns_eq, _eqns_le, _vars, Ale(), Ble(), i, and INT.

Referenced by Region_Intersect().

void SYSTEM_OF_EQUATIONS::Remove_Last_Vars ( INT  num_vars  ) 

Definition at line 212 of file soe.cxx.

References _Aeq, _Ale, _eqns_eq, _eqns_le, _vars, FmtAssert, i, and INT32.

Referenced by Reset_To().

void SYSTEM_OF_EQUATIONS::Reset_To ( INT32  nrows_le,
INT32  nrows_eq,
INT32  ncols 
)

BOOL SYSTEM_OF_EQUATIONS::Is_Consistent (  ) 

void SYSTEM_OF_EQUATIONS::Mark_Redundant ( BOOL is_redundant  ) 

INT SYSTEM_OF_EQUATIONS::Mark_Simple_Redundant ( BOOL is_redundant  ) 

INT SYSTEM_OF_EQUATIONS::Mark_New_Redundant ( BOOL is_redundant  ) 

BOOL SYSTEM_OF_EQUATIONS::Copy_To_Work (  ) 

void SYSTEM_OF_EQUATIONS::Add_Work_Le (  ) 

Definition at line 458 of file soe.cxx.

References _vars, _work, _work_cols, _work_const, _work_rows, Add_Le(), Add_Vars(), INT, and r.

Referenced by Region_Intersect(), and Row_Echelon().

void SYSTEM_OF_EQUATIONS::Add_Work_Le_Non_Simple_Redundant (  ) 

Definition at line 480 of file soe.cxx.

References _Ale, _ble, _eqns_le, _vars, _work, _work_cols, _work_const, _work_rows, Add_Le(), Add_Vars(), c, INT, Is_Simple_Redundant(), r, and rd.

Referenced by Row_Echelon().

BOOL SYSTEM_OF_EQUATIONS::Sub_In_Equal ( BOOL proved_inconsistent  ) 

BOOL SYSTEM_OF_EQUATIONS::Project ( const INT32  i,
BOOL proved_inconsistent,
const INT32  min_var = 0 
) [static]

INT SYSTEM_OF_EQUATIONS::Change_Base ( const INT32  dim,
const INT32  pos,
MEM_POOL pool 
)

void SYSTEM_OF_EQUATIONS::Take_Gcds (  ) 

Definition at line 1438 of file soe.cxx.

References _Aeq, _Ale, _beq, _ble, _eqns_eq, _eqns_le, _vars, FmtAssert, g, Gcd(), i, INT, INT32, and INT64.

Referenced by Row_Echelon(), and SNL_GEN_U_Ctiling().

const IMAT& SYSTEM_OF_EQUATIONS::Aeq (  )  const [inline]

IMAT& SYSTEM_OF_EQUATIONS::Aeq (  )  [inline]

Definition at line 389 of file soe.h.

References _Aeq.

const IMAT& SYSTEM_OF_EQUATIONS::Ale (  )  const [inline]

IMAT& SYSTEM_OF_EQUATIONS::Ale (  )  [inline]

Definition at line 391 of file soe.h.

References _Ale.

mINT64* SYSTEM_OF_EQUATIONS::Beq (  )  [inline]

const mINT64* SYSTEM_OF_EQUATIONS::Beq (  )  const [inline]

Definition at line 393 of file soe.h.

References _beq.

mINT64* SYSTEM_OF_EQUATIONS::Ble (  )  [inline]

const mINT64* SYSTEM_OF_EQUATIONS::Ble (  )  const [inline]

Definition at line 395 of file soe.h.

References _ble.

mINT32 SYSTEM_OF_EQUATIONS::Work ( const INT32  i,
const INT32  j 
) const [inline]

mINT64 SYSTEM_OF_EQUATIONS::Work_Const ( const INT32  i  )  const [inline]

Definition at line 397 of file soe.h.

References _work_const.

Referenced by ACCESS_VECTOR::ACCESS_VECTOR(), is_equality(), and LINEX::Map_from_SOE().

mINT32 SYSTEM_OF_EQUATIONS::Work_Constraints (  )  const [inline]

Definition at line 398 of file soe.h.

References _work_rows.

Referenced by Region_Intersect().

INT32 SYSTEM_OF_EQUATIONS::Simple_Redundant ( const INT32  r1,
const INT32  r2 
) [inline]

Definition at line 399 of file soe.h.

References _work, _work_cols, and _work_const.

Referenced by PROJECTED_REGION::Compare(), and Region_Compare().

void SYSTEM_OF_EQUATIONS::Elim_Simple_Redundant ( const INT32  min_var = 0  )  [static]

BOOL SYSTEM_OF_EQUATIONS::Prove_Redundant ( const INT  set,
const INT  dim 
)

BOOL SYSTEM_OF_EQUATIONS::Is_Consistent_Work (  ) 

MEM_POOL* SYSTEM_OF_EQUATIONS::Pool (  )  const [inline]

Definition at line 408 of file soe.h.

References _pool.

void SYSTEM_OF_EQUATIONS::Print ( FILE fp  )  const

void SYSTEM_OF_EQUATIONS::Print_Work ( FILE fp  )  [static]

Definition at line 425 of file soe.cxx.

References _work, _work_cols, _work_const, _work_const_eq, _work_eq, _work_rows, _work_rows_eq, fprintf(), i, and INT32.

INT32 SYSTEM_OF_EQUATIONS::ROW_INCR (  )  const [inline, private]

Definition at line 424 of file soe.h.

Referenced by Add_Eq(), and Add_Le().

BOOL SYSTEM_OF_EQUATIONS::Elim_One ( const INT32  i,
const INT32  plus,
const INT32  minus,
BOOL proved_inconsistent,
const INT32  min_var 
) [static, private]

Definition at line 671 of file soe.cxx.

References _work, _work_cols, _work_const, _work_rows, abs, BOOL, col, FALSE, g, Gcd(), INT32, INT32_MAX, INT64, SOE_MAX_WORK_ROWS, tmp, and TRUE.

Referenced by Project().

INT SYSTEM_OF_EQUATIONS::Is_Simple_Redundant ( const INT32 row1,
const INT32 row2,
INT64  row1c,
INT64  row2c,
INT  min_var,
INT  cols 
) [static, private]

Definition at line 793 of file soe.cxx.

References abs, BOOL, col, FALSE, INT, INT32, INT32_MAX, INT64, and TRUE.

Referenced by Add_Work_Le_Non_Simple_Redundant(), Elim_Simple_Redundant(), and Mark_Simple_Redundant().

INT SYSTEM_OF_EQUATIONS::Simple_Redundant ( const INT32 row1,
const INT32 row2,
INT64  row1c,
INT64  row2c,
INT  min_var,
INT  cols 
) [static, private]

Definition at line 849 of file soe.cxx.

References abs, BOOL, col, FALSE, INT, INT32, INT32_MAX, INT64, and TRUE.

BOOL SYSTEM_OF_EQUATIONS::Copy_To_Work ( const INT32  from,
const INT32  to 
) [private]

BOOL SYSTEM_OF_EQUATIONS::Copy_Inverse_To_Work ( const INT32  i  )  [private]

BOOL SYSTEM_OF_EQUATIONS::One_Var_Consistent ( INT32  var,
INT32  from,
INT32  to 
) [private]

void SYSTEM_OF_EQUATIONS::SVPC_Set_Bound ( INT32  i,
INT32  var 
) [private]

Definition at line 1116 of file soe.cxx.

References _lower_bound, _upper_bound, _work, _work_const, INT32, and tmp.

Referenced by One_Var_Consistent().

SVPC_RESULT SYSTEM_OF_EQUATIONS::SVPC (  )  [private]

ACY_RESULT SYSTEM_OF_EQUATIONS::Acyclic_Test (  )  [private]

INT SYSTEM_OF_EQUATIONS::Var_Leaf ( INT  i,
INT sign 
) [private]

Definition at line 1202 of file soe.cxx.

References _is_svpc, _work, _work_rows, INT, and s.

Referenced by Acyclic_Test().

void SYSTEM_OF_EQUATIONS::Acy_Set_Var ( INT  i,
INT32_INFIN  val,
BOOL inconsistent 
) [private]

BOOL SYSTEM_OF_EQUATIONS::Copy_To_Work_Eq (  )  [private]

BOOL SYSTEM_OF_EQUATIONS::Sub_Last_Equal ( BOOL proved_inconsistent  )  [private]

BOOL SYSTEM_OF_EQUATIONS::Sub_Last_Equal_Unary ( const INT32  i,
const INT32  minvar 
) [private]

Definition at line 1327 of file soe.cxx.

References _work, _work_cols, _work_const, _work_const_eq, _work_eq, _work_rows, _work_rows_eq, abs, eq, FALSE, INT32, INT32_MAX, INT64, le, mult, tmp, and TRUE.

Referenced by Sub_Last_Equal().

INT32 SYSTEM_OF_EQUATIONS::Normalize_Eq_and_Find_Smallest ( INT32  eqnum,
INT32  minvar,
BOOL proved_inconsistent 
) [private]

Definition at line 1403 of file soe.cxx.

References _work_cols, _work_const_eq, _work_eq, abs, g, Gcd(), i, INT32, Is_True, tmp, and TRUE.

Referenced by Sub_Last_Equal().

INT32 SYSTEM_OF_EQUATIONS::Mod_Hat ( INT32  a,
INT32  b 
) [private]

Definition at line 1472 of file soe.cxx.

References is::den, floor(), and INT32.

Referenced by Sub_Last_Equal().

BOOL SYSTEM_OF_EQUATIONS::Add_Work_Var (  )  [private]

Definition at line 1489 of file soe.cxx.

References _work, _work_cols, _work_eq, _work_rows, _work_rows_eq, FALSE, i, INT32, SOE_MAX_WORK_COLS, and TRUE.

Referenced by Sub_Last_Equal().

void SYSTEM_OF_EQUATIONS::Gcd_Normalize (  )  [private]

Definition at line 1019 of file soe.cxx.

References _work, _work_cols, _work_const, _work_rows, abs, g, Gcd(), i, INT, and INT32.

Referenced by Is_Consistent_Work().


Field Documentation

Definition at line 435 of file soe.h.

Referenced by Acyclic_Test(), Add_Eq(), Add_Le(), Pool(), SYSTEM_OF_EQUATIONS(), and ~SYSTEM_OF_EQUATIONS().

Definition at line 437 of file soe.h.

Referenced by Add_Le(), and SYSTEM_OF_EQUATIONS().

Definition at line 439 of file soe.h.

Referenced by Add_Eq(), and SYSTEM_OF_EQUATIONS().

Definition at line 449 of file soe.h.

Referenced by Elim_Simple_Redundant().

Definition at line 450 of file soe.h.

Referenced by Acy_Set_Var(), SVPC(), and Var_Leaf().

Definition at line 472 of file soe.h.

Referenced by Acyclic_Test(), One_Var_Consistent(), SVPC(), and SVPC_Set_Bound().

Definition at line 473 of file soe.h.

Referenced by Acyclic_Test(), One_Var_Consistent(), SVPC(), and SVPC_Set_Bound().


The documentation for this module was generated from the following files:

Generated on Wed Apr 8 17:10:17 2009 for Open64 by  doxygen 1.5.6