File: PatchAndGoInfo.h

package info (click to toggle)
spooles 2.2-9
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 19,012 kB
  • sloc: ansic: 146,834; csh: 3,615; makefile: 2,040; perl: 74
file content (129 lines) | stat: -rw-r--r-- 3,779 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
/*  PatchAndGoInfo.h  */

#include "../IV.h"
#include "../DV.h"

/*--------------------------------------------------------------------*/
/*
   -----------------------------------------------------------------
   this object is used by the Chv object to implement the 
   "patch-and-go" strategies, used in specialized optimization
   and structural analysis applications.

   strategy -- type of patch-and-go strategy
      1 -- used with optimization matrices
         if ( |a_{i,i}| <= toosmall ) {
            set a_{i,i} = 1.0
            set offdiagonals = 0.0 
         }
      2 -- used with structural analysis matrices
         if ( |a_{i,i}| <= fudge ) {
            set a_{i,i} = fudge * max (1, |a_{i,*}|, |a_{*,i}|)
         }
   toosmall -- measure of smallness for diagonal entry
   fudge    -- change factor for diagonal entry
   fudgeIV  -- (optional) stores locations where modifications made
   fudgeDV  -- (optional) stores modifications 
   
   created -- 98aug26, cca
   -----------------------------------------------------------------
*/
typedef struct _PatchAndGoInfo PatchAndGoInfo ;
struct _PatchAndGoInfo {
   int      strategy ;
   double   toosmall ;
   double   fudge    ;
   IV       *fudgeIV ;
   DV       *fudgeDV ;
} ;
/*--------------------------------------------------------------------*/
/*
------------------------------------------------------------------------
----- methods found in basics.c ----------------------------------------
------------------------------------------------------------------------
*/
/*
   -----------------------
   constructor method
 
   created -- 98aug26, cca
   -----------------------
*/
PatchAndGoInfo *
PatchAndGoInfo_new ( 
   void 
) ;
/*
   -----------------------
   set the default fields
 
   created -- 98aug26, cca
   -----------------------
*/
void
PatchAndGoInfo_setDefaultFields ( 
   PatchAndGoInfo   *info
) ;
/*
   -----------------------
   clear the data fields
 
   created -- 98aug26, cca
   -----------------------
*/
void
PatchAndGoInfo_clearData (
   PatchAndGoInfo   *info
) ;
/*
   -----------------------
   destructor
 
   created -- 98aug26, cca
   -----------------------
*/
void
PatchAndGoInfo_free (
   PatchAndGoInfo   *info
) ;
/*--------------------------------------------------------------------*/
/*
------------------------------------------------------------------------
----- methods found in init.c ------------------------------------------
------------------------------------------------------------------------
*/
/*
   ------------------------------------------------------------
   purpose -- to initialize the patch-and-go information object
 
   strategy -- type of patch-and-go strategy
      1 -- used with optimization matrices
         if ( |a_{i,i}| <= toosmall ) {
            set a_{i,i} = 1.0
            set offdiagonals = 0.0 
         }
      2 -- used with structural analysis matrices
         if ( |a_{i,i}| <= fudge ) {
            set a_{i,i} = fudge * max (1, |a_{i,*}|, |a_{*,i}|)
         }
   toosmall    -- tolerance for first strategy
   fudge       -- fudge factor for second strategy
   storeids    -- if nonzero, the row and column numbers where
      patches have been applied are stored in an IV object
   storevalues -- if nonzero and strategy 2, the differences
      between the old and new diagonal magnitudes will be 
      stored in a DV object
 
   created -- 98aug27, cca
   ------------------------------------------------------------
*/
void
PatchAndGoInfo_init (
   PatchAndGoInfo   *info,
   int              strategy,
   double           toosmall,
   double           fudge,
   int              storeids,
   int              storevalues
) ;
/*--------------------------------------------------------------------*/