* Example 9:
* loss of precision in coefficients cause invalid results : fault trees
* and block diagrams
* By asking for numerical rather than symbolic computation, this
* can be avoided. Stdudy this example carefully.


poly f(x) gen 1,0,0,-1,0,-x
ftree main
basic 1151 f(lambda)
basic 1152 f(lambda)
basic 1153 f(lambda)
basic 1154 f(lambda)
basic 1155 f(lambda)
basic 1156 f(lambda)
and G169 1151 1152 1153
and G170 1154 1155 1156
and G174 G169 G170
basic 3031 f(lambda)
basic 3032 f(lambda)
basic 3033 f(lambda)
basic 3034 f(lambda)
basic 3035 f(lambda)
basic 3036 f(lambda)
and G140 3031 3032 3033
and G141 3034 3035 3036
basic 1121 f(lambda)
basic 1122 f(lambda)
basic 1123 f(lambda)
basic 1124 f(lambda)
basic 1125 f(lambda)
basic 1126 f(lambda)
and G144 1121 1122 1123
and G145 1124 1125 1126
and G142 G140 G141
basic 4030 f(lambda)
and G143 G142 4030
and G146 G144 G145
and G154 G143 G146
basic G65 f(lambda)
basic G99 f(lambda)
basic G93 f(lambda)
basic G78 f(lambda)
and G149 G65 G99 G93 G78
basic 2000 f(lambda)
and G150 G149 2000
basic 1131 f(lambda)
basic 1132 f(lambda)
basic 1133 f(lambda)
basic 1134 f(lambda)
basic 1135 f(lambda)
basic 1136 f(lambda)
and G151 1131 1132 1133
and G152 1134 1135 1136
and G153 G151 G152
and G155 G150 G153
or G156 G154 G155
basic 2030 f(lambda)
and G162 G156 2030
basic 1141 f(lambda)
basic 1142 f(lambda)
basic 1143 f(lambda)
basic 1144 f(lambda)
basic 1145 f(lambda)
basic 1146 f(lambda)
and G160 1141 1142 1143
and G161 1144 1145 1146
and G163 G160 G161
and G164 G162 G163
basic 3041 f(lambda)
basic 3042 f(lambda)
basic 3043 f(lambda)
basic 3044 f(lambda)
basic 3045 f(lambda)
basic 3046 f(lambda)
and G165 3041 3042 3043
and G166 3044 3045 3046
and G167 G165 G166
and G168 G164 G167
basic 2040 f(lambda)
and G175 G168 2040
and G176 G174 G175
basic 1201 f(lambda)
basic 1202 f(lambda)
basic 1203 f(lambda)
basic 1204 f(lambda)
basic 1205 f(lambda)
basic 1206 f(lambda)
and G206 1201 1202 1203
and G207 1204 1205 1206
and G208 G206 G207
basic 3051 f(lambda)
basic 3052 f(lambda)
basic 3053 f(lambda)
basic 3054 f(lambda)
basic 3055 f(lambda)
basic 3056 f(lambda)
and G202 3051 3052 3053
and G203 3054 3055 3056
and G204 G202 G203
basic 1181 f(lambda)
basic 1182 f(lambda)
basic 1183 f(lambda)
basic 1184 f(lambda)
basic 1185 f(lambda)
basic 1186 f(lambda)
and G189 1181 1182 1183
and G190 1184 1185 1186
and X1 G189 G190
basic X2 f(lambda)
basic 1171 f(lambda)
basic 1172 f(lambda)
basic 1173 f(lambda)
basic 1174 f(lambda)
basic 1175 f(lambda)
basic 1176 f(lambda)
and G185 1171 1172 1173
and G186 1174 1175 1176
and G187 G185 G186
and X3 X1 G187
and G192 X1 X3
basic G117 f(lambda)
basic G128 f(lambda)
basic G136 f(lambda)
basic G124 f(lambda)
and G182 G117 G128 G136 G124
basic 2050 f(lambda)
and G183 G182 2050
basic 1161 f(lambda)
basic 1162 f(lambda)
basic 1163 f(lambda)
basic 1164 f(lambda)
basic 1165 f(lambda)
basic 1166 f(lambda)
and G177 1161 1162 1163
and G178 1164 1165 1166
and G179 G177 G178
and G184 G183 G179
basic 6010 f(lambda)
basic 6040 f(lambda)
basic 6020 f(lambda)
or G139 6010 6040 6020
or G193 G192 G184 G139
basic 2060 f(lambda)
and G197 2060 G193
basic 1191 f(lambda)
basic 1192 f(lambda)
basic 1193 f(lambda)
basic 1194 f(lambda)
basic 1195 f(lambda)
basic 1196 f(lambda)
and G198 1191 1192 1193
and G199 1194 1195 1196
and G200 G198 G199
and G201 G197 G200
and G205 G204 G201
and G209 G208 G205
or G212 G175 G209
basic 2070 f(lambda)
and G213 G212 2070
end

bind
lambda .8
end

* tvalue computes the answer numerically to start with
* and hence is lot more stable. The use of tvalue is advised for larger
* problems. In any case, check value and tvalue against
* each other.
loop t,0,2, .2
   expr tvalue (t;main)
end

* Examples from the paper by M. Balakrishnan and Trivedi:
*Stochastic Petri Nets for the
*Reliability Analysis of Communication Network Applications with
* Alternate-Routing,
* Reliability Engineering and System Safety, Vol. 52, 1996.
end

end

