ltbams 1.0.0__py3-none-any.whl → 1.0.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (556) hide show
  1. ams/_version.py +4 -4
  2. ams/main.py +0 -2
  3. ams/shared.py +29 -0
  4. docs/source/conf.py +3 -0
  5. docs/source/getting_started/install.rst +8 -11
  6. docs/source/images/curent.ico +0 -0
  7. docs/source/release-notes.rst +13 -0
  8. {ltbams-1.0.0.dist-info → ltbams-1.0.2.dist-info}/METADATA +15 -31
  9. ltbams-1.0.2.dist-info/RECORD +188 -0
  10. ltbams-1.0.2.dist-info/top_level.txt +3 -0
  11. tests/test_report.py +11 -5
  12. tests/test_rtn_ed.py +10 -6
  13. tests/test_rtn_rted.py +9 -9
  14. tests/test_rtn_uc.py +25 -25
  15. ams/routines/pflow1.py +0 -156
  16. docs/build/doctrees/nbsphinx/_examples_demo_demo_AGC_20_1.png +0 -0
  17. docs/build/doctrees/nbsphinx/_examples_demo_demo_AGC_37_1.png +0 -0
  18. docs/build/doctrees/nbsphinx/_examples_demo_demo_AGC_39_1.png +0 -0
  19. docs/build/html/_images/_examples_demo_demo_AGC_20_1.png +0 -0
  20. docs/build/html/_images/_examples_demo_demo_AGC_37_1.png +0 -0
  21. docs/build/html/_images/_examples_demo_demo_AGC_39_1.png +0 -0
  22. docs/build/html/_images/xlsx.png +0 -0
  23. docs/build/html/_static/file.png +0 -0
  24. docs/build/html/_static/minus.png +0 -0
  25. docs/build/html/_static/plus.png +0 -0
  26. docs/source/_generated/_generated/ams.core.model.Model.alter.rst +0 -6
  27. docs/source/_generated/_generated/ams.core.model.Model.class_name.rst +0 -6
  28. docs/source/_generated/_generated/ams.core.model.Model.doc.rst +0 -6
  29. docs/source/_generated/_generated/ams.core.model.Model.get.rst +0 -6
  30. docs/source/_generated/_generated/ams.core.model.Model.get_idx.rst +0 -6
  31. docs/source/_generated/_generated/ams.core.model.Model.idx2uid.rst +0 -6
  32. docs/source/_generated/_generated/ams.core.model.Model.list2array.rst +0 -6
  33. docs/source/_generated/_generated/ams.core.model.Model.set.rst +0 -6
  34. docs/source/_generated/_generated/ams.core.model.Model.set_backref.rst +0 -6
  35. docs/source/_generated/_generated/ams.core.param.RParam.class_name.rst +0 -6
  36. docs/source/_generated/_generated/ams.core.param.RParam.dtype.rst +0 -6
  37. docs/source/_generated/_generated/ams.core.param.RParam.evaluate.rst +0 -6
  38. docs/source/_generated/_generated/ams.core.param.RParam.get_idx.rst +0 -6
  39. docs/source/_generated/_generated/ams.core.param.RParam.n.rst +0 -6
  40. docs/source/_generated/_generated/ams.core.param.RParam.parse.rst +0 -6
  41. docs/source/_generated/_generated/ams.core.param.RParam.shape.rst +0 -6
  42. docs/source/_generated/_generated/ams.core.param.RParam.size.rst +0 -6
  43. docs/source/_generated/_generated/ams.core.param.RParam.update.rst +0 -6
  44. docs/source/_generated/_generated/ams.core.param.RParam.v.rst +0 -6
  45. docs/source/_generated/_generated/ams.core.service.LoadScale.assign_memory.rst +0 -6
  46. docs/source/_generated/_generated/ams.core.service.LoadScale.class_name.rst +0 -6
  47. docs/source/_generated/_generated/ams.core.service.LoadScale.evaluate.rst +0 -6
  48. docs/source/_generated/_generated/ams.core.service.LoadScale.get_names.rst +0 -6
  49. docs/source/_generated/_generated/ams.core.service.LoadScale.n.rst +0 -6
  50. docs/source/_generated/_generated/ams.core.service.LoadScale.parse.rst +0 -6
  51. docs/source/_generated/_generated/ams.core.service.LoadScale.shape.rst +0 -6
  52. docs/source/_generated/_generated/ams.core.service.LoadScale.size.rst +0 -6
  53. docs/source/_generated/_generated/ams.core.service.LoadScale.update.rst +0 -6
  54. docs/source/_generated/_generated/ams.core.service.LoadScale.v.rst +0 -6
  55. docs/source/_generated/_generated/ams.core.service.MinDur.assign_memory.rst +0 -6
  56. docs/source/_generated/_generated/ams.core.service.MinDur.class_name.rst +0 -6
  57. docs/source/_generated/_generated/ams.core.service.MinDur.evaluate.rst +0 -6
  58. docs/source/_generated/_generated/ams.core.service.MinDur.get_names.rst +0 -6
  59. docs/source/_generated/_generated/ams.core.service.MinDur.n.rst +0 -6
  60. docs/source/_generated/_generated/ams.core.service.MinDur.parse.rst +0 -6
  61. docs/source/_generated/_generated/ams.core.service.MinDur.shape.rst +0 -6
  62. docs/source/_generated/_generated/ams.core.service.MinDur.size.rst +0 -6
  63. docs/source/_generated/_generated/ams.core.service.MinDur.update.rst +0 -6
  64. docs/source/_generated/_generated/ams.core.service.MinDur.v.rst +0 -6
  65. docs/source/_generated/_generated/ams.core.service.MinDur.v0.rst +0 -6
  66. docs/source/_generated/_generated/ams.core.service.MinDur.v1.rst +0 -6
  67. docs/source/_generated/_generated/ams.core.service.NumExpandDim.assign_memory.rst +0 -6
  68. docs/source/_generated/_generated/ams.core.service.NumExpandDim.class_name.rst +0 -6
  69. docs/source/_generated/_generated/ams.core.service.NumExpandDim.evaluate.rst +0 -6
  70. docs/source/_generated/_generated/ams.core.service.NumExpandDim.get_names.rst +0 -6
  71. docs/source/_generated/_generated/ams.core.service.NumExpandDim.n.rst +0 -6
  72. docs/source/_generated/_generated/ams.core.service.NumExpandDim.parse.rst +0 -6
  73. docs/source/_generated/_generated/ams.core.service.NumExpandDim.shape.rst +0 -6
  74. docs/source/_generated/_generated/ams.core.service.NumExpandDim.size.rst +0 -6
  75. docs/source/_generated/_generated/ams.core.service.NumExpandDim.update.rst +0 -6
  76. docs/source/_generated/_generated/ams.core.service.NumExpandDim.v.rst +0 -6
  77. docs/source/_generated/_generated/ams.core.service.NumExpandDim.v0.rst +0 -6
  78. docs/source/_generated/_generated/ams.core.service.NumExpandDim.v1.rst +0 -6
  79. docs/source/_generated/_generated/ams.core.service.NumHstack.assign_memory.rst +0 -6
  80. docs/source/_generated/_generated/ams.core.service.NumHstack.class_name.rst +0 -6
  81. docs/source/_generated/_generated/ams.core.service.NumHstack.evaluate.rst +0 -6
  82. docs/source/_generated/_generated/ams.core.service.NumHstack.get_names.rst +0 -6
  83. docs/source/_generated/_generated/ams.core.service.NumHstack.n.rst +0 -6
  84. docs/source/_generated/_generated/ams.core.service.NumHstack.parse.rst +0 -6
  85. docs/source/_generated/_generated/ams.core.service.NumHstack.shape.rst +0 -6
  86. docs/source/_generated/_generated/ams.core.service.NumHstack.size.rst +0 -6
  87. docs/source/_generated/_generated/ams.core.service.NumHstack.update.rst +0 -6
  88. docs/source/_generated/_generated/ams.core.service.NumHstack.v.rst +0 -6
  89. docs/source/_generated/_generated/ams.core.service.NumHstack.v0.rst +0 -6
  90. docs/source/_generated/_generated/ams.core.service.NumHstack.v1.rst +0 -6
  91. docs/source/_generated/_generated/ams.core.service.NumOp.assign_memory.rst +0 -6
  92. docs/source/_generated/_generated/ams.core.service.NumOp.class_name.rst +0 -6
  93. docs/source/_generated/_generated/ams.core.service.NumOp.evaluate.rst +0 -6
  94. docs/source/_generated/_generated/ams.core.service.NumOp.get_names.rst +0 -6
  95. docs/source/_generated/_generated/ams.core.service.NumOp.n.rst +0 -6
  96. docs/source/_generated/_generated/ams.core.service.NumOp.parse.rst +0 -6
  97. docs/source/_generated/_generated/ams.core.service.NumOp.shape.rst +0 -6
  98. docs/source/_generated/_generated/ams.core.service.NumOp.size.rst +0 -6
  99. docs/source/_generated/_generated/ams.core.service.NumOp.update.rst +0 -6
  100. docs/source/_generated/_generated/ams.core.service.NumOp.v.rst +0 -6
  101. docs/source/_generated/_generated/ams.core.service.NumOp.v0.rst +0 -6
  102. docs/source/_generated/_generated/ams.core.service.NumOp.v1.rst +0 -6
  103. docs/source/_generated/_generated/ams.core.service.NumOpDual.assign_memory.rst +0 -6
  104. docs/source/_generated/_generated/ams.core.service.NumOpDual.class_name.rst +0 -6
  105. docs/source/_generated/_generated/ams.core.service.NumOpDual.evaluate.rst +0 -6
  106. docs/source/_generated/_generated/ams.core.service.NumOpDual.get_names.rst +0 -6
  107. docs/source/_generated/_generated/ams.core.service.NumOpDual.n.rst +0 -6
  108. docs/source/_generated/_generated/ams.core.service.NumOpDual.parse.rst +0 -6
  109. docs/source/_generated/_generated/ams.core.service.NumOpDual.shape.rst +0 -6
  110. docs/source/_generated/_generated/ams.core.service.NumOpDual.size.rst +0 -6
  111. docs/source/_generated/_generated/ams.core.service.NumOpDual.update.rst +0 -6
  112. docs/source/_generated/_generated/ams.core.service.NumOpDual.v.rst +0 -6
  113. docs/source/_generated/_generated/ams.core.service.NumOpDual.v0.rst +0 -6
  114. docs/source/_generated/_generated/ams.core.service.NumOpDual.v1.rst +0 -6
  115. docs/source/_generated/_generated/ams.core.service.RBaseService.assign_memory.rst +0 -6
  116. docs/source/_generated/_generated/ams.core.service.RBaseService.class_name.rst +0 -6
  117. docs/source/_generated/_generated/ams.core.service.RBaseService.evaluate.rst +0 -6
  118. docs/source/_generated/_generated/ams.core.service.RBaseService.get_names.rst +0 -6
  119. docs/source/_generated/_generated/ams.core.service.RBaseService.n.rst +0 -6
  120. docs/source/_generated/_generated/ams.core.service.RBaseService.parse.rst +0 -6
  121. docs/source/_generated/_generated/ams.core.service.RBaseService.shape.rst +0 -6
  122. docs/source/_generated/_generated/ams.core.service.RBaseService.size.rst +0 -6
  123. docs/source/_generated/_generated/ams.core.service.RBaseService.update.rst +0 -6
  124. docs/source/_generated/_generated/ams.core.service.RBaseService.v.rst +0 -6
  125. docs/source/_generated/_generated/ams.core.service.ROperationService.assign_memory.rst +0 -6
  126. docs/source/_generated/_generated/ams.core.service.ROperationService.class_name.rst +0 -6
  127. docs/source/_generated/_generated/ams.core.service.ROperationService.evaluate.rst +0 -6
  128. docs/source/_generated/_generated/ams.core.service.ROperationService.get_names.rst +0 -6
  129. docs/source/_generated/_generated/ams.core.service.ROperationService.n.rst +0 -6
  130. docs/source/_generated/_generated/ams.core.service.ROperationService.parse.rst +0 -6
  131. docs/source/_generated/_generated/ams.core.service.ROperationService.shape.rst +0 -6
  132. docs/source/_generated/_generated/ams.core.service.ROperationService.size.rst +0 -6
  133. docs/source/_generated/_generated/ams.core.service.ROperationService.update.rst +0 -6
  134. docs/source/_generated/_generated/ams.core.service.ROperationService.v.rst +0 -6
  135. docs/source/_generated/_generated/ams.core.service.RampSub.assign_memory.rst +0 -6
  136. docs/source/_generated/_generated/ams.core.service.RampSub.class_name.rst +0 -6
  137. docs/source/_generated/_generated/ams.core.service.RampSub.evaluate.rst +0 -6
  138. docs/source/_generated/_generated/ams.core.service.RampSub.get_names.rst +0 -6
  139. docs/source/_generated/_generated/ams.core.service.RampSub.n.rst +0 -6
  140. docs/source/_generated/_generated/ams.core.service.RampSub.parse.rst +0 -6
  141. docs/source/_generated/_generated/ams.core.service.RampSub.shape.rst +0 -6
  142. docs/source/_generated/_generated/ams.core.service.RampSub.size.rst +0 -6
  143. docs/source/_generated/_generated/ams.core.service.RampSub.update.rst +0 -6
  144. docs/source/_generated/_generated/ams.core.service.RampSub.v.rst +0 -6
  145. docs/source/_generated/_generated/ams.core.service.RampSub.v0.rst +0 -6
  146. docs/source/_generated/_generated/ams.core.service.RampSub.v1.rst +0 -6
  147. docs/source/_generated/_generated/ams.core.service.ValueService.assign_memory.rst +0 -6
  148. docs/source/_generated/_generated/ams.core.service.ValueService.class_name.rst +0 -6
  149. docs/source/_generated/_generated/ams.core.service.ValueService.evaluate.rst +0 -6
  150. docs/source/_generated/_generated/ams.core.service.ValueService.get_names.rst +0 -6
  151. docs/source/_generated/_generated/ams.core.service.ValueService.n.rst +0 -6
  152. docs/source/_generated/_generated/ams.core.service.ValueService.parse.rst +0 -6
  153. docs/source/_generated/_generated/ams.core.service.ValueService.shape.rst +0 -6
  154. docs/source/_generated/_generated/ams.core.service.ValueService.size.rst +0 -6
  155. docs/source/_generated/_generated/ams.core.service.ValueService.update.rst +0 -6
  156. docs/source/_generated/_generated/ams.core.service.ValueService.v.rst +0 -6
  157. docs/source/_generated/_generated/ams.core.service.VarReduction.assign_memory.rst +0 -6
  158. docs/source/_generated/_generated/ams.core.service.VarReduction.class_name.rst +0 -6
  159. docs/source/_generated/_generated/ams.core.service.VarReduction.evaluate.rst +0 -6
  160. docs/source/_generated/_generated/ams.core.service.VarReduction.get_names.rst +0 -6
  161. docs/source/_generated/_generated/ams.core.service.VarReduction.n.rst +0 -6
  162. docs/source/_generated/_generated/ams.core.service.VarReduction.parse.rst +0 -6
  163. docs/source/_generated/_generated/ams.core.service.VarReduction.shape.rst +0 -6
  164. docs/source/_generated/_generated/ams.core.service.VarReduction.size.rst +0 -6
  165. docs/source/_generated/_generated/ams.core.service.VarReduction.update.rst +0 -6
  166. docs/source/_generated/_generated/ams.core.service.VarReduction.v.rst +0 -6
  167. docs/source/_generated/_generated/ams.core.service.VarReduction.v0.rst +0 -6
  168. docs/source/_generated/_generated/ams.core.service.VarReduction.v1.rst +0 -6
  169. docs/source/_generated/_generated/ams.core.service.VarSelect.assign_memory.rst +0 -6
  170. docs/source/_generated/_generated/ams.core.service.VarSelect.class_name.rst +0 -6
  171. docs/source/_generated/_generated/ams.core.service.VarSelect.evaluate.rst +0 -6
  172. docs/source/_generated/_generated/ams.core.service.VarSelect.get_names.rst +0 -6
  173. docs/source/_generated/_generated/ams.core.service.VarSelect.n.rst +0 -6
  174. docs/source/_generated/_generated/ams.core.service.VarSelect.parse.rst +0 -6
  175. docs/source/_generated/_generated/ams.core.service.VarSelect.shape.rst +0 -6
  176. docs/source/_generated/_generated/ams.core.service.VarSelect.size.rst +0 -6
  177. docs/source/_generated/_generated/ams.core.service.VarSelect.update.rst +0 -6
  178. docs/source/_generated/_generated/ams.core.service.VarSelect.v.rst +0 -6
  179. docs/source/_generated/_generated/ams.core.service.VarSelect.v0.rst +0 -6
  180. docs/source/_generated/_generated/ams.core.service.VarSelect.v1.rst +0 -6
  181. docs/source/_generated/_generated/ams.core.service.ZonalSum.assign_memory.rst +0 -6
  182. docs/source/_generated/_generated/ams.core.service.ZonalSum.class_name.rst +0 -6
  183. docs/source/_generated/_generated/ams.core.service.ZonalSum.evaluate.rst +0 -6
  184. docs/source/_generated/_generated/ams.core.service.ZonalSum.get_names.rst +0 -6
  185. docs/source/_generated/_generated/ams.core.service.ZonalSum.n.rst +0 -6
  186. docs/source/_generated/_generated/ams.core.service.ZonalSum.parse.rst +0 -6
  187. docs/source/_generated/_generated/ams.core.service.ZonalSum.shape.rst +0 -6
  188. docs/source/_generated/_generated/ams.core.service.ZonalSum.size.rst +0 -6
  189. docs/source/_generated/_generated/ams.core.service.ZonalSum.update.rst +0 -6
  190. docs/source/_generated/_generated/ams.core.service.ZonalSum.v.rst +0 -6
  191. docs/source/_generated/_generated/ams.core.service.ZonalSum.v0.rst +0 -6
  192. docs/source/_generated/_generated/ams.core.service.ZonalSum.v1.rst +0 -6
  193. docs/source/_generated/_generated/ams.interface.Dynamic.is_tds.rst +0 -6
  194. docs/source/_generated/_generated/ams.interface.Dynamic.link_andes.rst +0 -6
  195. docs/source/_generated/_generated/ams.interface.Dynamic.receive.rst +0 -6
  196. docs/source/_generated/_generated/ams.interface.Dynamic.send.rst +0 -6
  197. docs/source/_generated/_generated/ams.opt.constraint.Constraint.class_name.rst +0 -6
  198. docs/source/_generated/_generated/ams.opt.constraint.Constraint.e.rst +0 -6
  199. docs/source/_generated/_generated/ams.opt.constraint.Constraint.evaluate.rst +0 -6
  200. docs/source/_generated/_generated/ams.opt.constraint.Constraint.n.rst +0 -6
  201. docs/source/_generated/_generated/ams.opt.constraint.Constraint.parse.rst +0 -6
  202. docs/source/_generated/_generated/ams.opt.constraint.Constraint.shape.rst +0 -6
  203. docs/source/_generated/_generated/ams.opt.constraint.Constraint.size.rst +0 -6
  204. docs/source/_generated/_generated/ams.opt.constraint.Constraint.v.rst +0 -6
  205. docs/source/_generated/_generated/ams.opt.exprcalc.ExpressionCalc.class_name.rst +0 -6
  206. docs/source/_generated/_generated/ams.opt.exprcalc.ExpressionCalc.e.rst +0 -6
  207. docs/source/_generated/_generated/ams.opt.exprcalc.ExpressionCalc.evaluate.rst +0 -6
  208. docs/source/_generated/_generated/ams.opt.exprcalc.ExpressionCalc.get_idx.rst +0 -6
  209. docs/source/_generated/_generated/ams.opt.exprcalc.ExpressionCalc.n.rst +0 -6
  210. docs/source/_generated/_generated/ams.opt.exprcalc.ExpressionCalc.parse.rst +0 -6
  211. docs/source/_generated/_generated/ams.opt.exprcalc.ExpressionCalc.shape.rst +0 -6
  212. docs/source/_generated/_generated/ams.opt.exprcalc.ExpressionCalc.size.rst +0 -6
  213. docs/source/_generated/_generated/ams.opt.exprcalc.ExpressionCalc.v.rst +0 -6
  214. docs/source/_generated/_generated/ams.opt.expression.Expression.class_name.rst +0 -6
  215. docs/source/_generated/_generated/ams.opt.expression.Expression.e.rst +0 -6
  216. docs/source/_generated/_generated/ams.opt.expression.Expression.evaluate.rst +0 -6
  217. docs/source/_generated/_generated/ams.opt.expression.Expression.get_idx.rst +0 -6
  218. docs/source/_generated/_generated/ams.opt.expression.Expression.n.rst +0 -6
  219. docs/source/_generated/_generated/ams.opt.expression.Expression.parse.rst +0 -6
  220. docs/source/_generated/_generated/ams.opt.expression.Expression.shape.rst +0 -6
  221. docs/source/_generated/_generated/ams.opt.expression.Expression.size.rst +0 -6
  222. docs/source/_generated/_generated/ams.opt.expression.Expression.v.rst +0 -6
  223. docs/source/_generated/_generated/ams.opt.objective.Objective.class_name.rst +0 -6
  224. docs/source/_generated/_generated/ams.opt.objective.Objective.e.rst +0 -6
  225. docs/source/_generated/_generated/ams.opt.objective.Objective.evaluate.rst +0 -6
  226. docs/source/_generated/_generated/ams.opt.objective.Objective.n.rst +0 -6
  227. docs/source/_generated/_generated/ams.opt.objective.Objective.parse.rst +0 -6
  228. docs/source/_generated/_generated/ams.opt.objective.Objective.shape.rst +0 -6
  229. docs/source/_generated/_generated/ams.opt.objective.Objective.size.rst +0 -6
  230. docs/source/_generated/_generated/ams.opt.objective.Objective.v.rst +0 -6
  231. docs/source/_generated/_generated/ams.opt.omodel.OModel.class_name.rst +0 -6
  232. docs/source/_generated/_generated/ams.opt.omodel.OModel.evaluate.rst +0 -6
  233. docs/source/_generated/_generated/ams.opt.omodel.OModel.finalize.rst +0 -6
  234. docs/source/_generated/_generated/ams.opt.omodel.OModel.init.rst +0 -6
  235. docs/source/_generated/_generated/ams.opt.omodel.OModel.initialized.rst +0 -6
  236. docs/source/_generated/_generated/ams.opt.omodel.OModel.parse.rst +0 -6
  237. docs/source/_generated/_generated/ams.opt.omodel.OModel.update.rst +0 -6
  238. docs/source/_generated/_generated/ams.opt.omodel.OModelBase.class_name.rst +0 -6
  239. docs/source/_generated/_generated/ams.opt.omodel.OModelBase.evaluate.rst +0 -6
  240. docs/source/_generated/_generated/ams.opt.omodel.OModelBase.finalize.rst +0 -6
  241. docs/source/_generated/_generated/ams.opt.omodel.OModelBase.init.rst +0 -6
  242. docs/source/_generated/_generated/ams.opt.omodel.OModelBase.initialized.rst +0 -6
  243. docs/source/_generated/_generated/ams.opt.omodel.OModelBase.parse.rst +0 -6
  244. docs/source/_generated/_generated/ams.opt.omodel.OModelBase.update.rst +0 -6
  245. docs/source/_generated/_generated/ams.opt.optbase.OptzBase.class_name.rst +0 -6
  246. docs/source/_generated/_generated/ams.opt.optbase.OptzBase.evaluate.rst +0 -6
  247. docs/source/_generated/_generated/ams.opt.optbase.OptzBase.n.rst +0 -6
  248. docs/source/_generated/_generated/ams.opt.optbase.OptzBase.parse.rst +0 -6
  249. docs/source/_generated/_generated/ams.opt.optbase.OptzBase.shape.rst +0 -6
  250. docs/source/_generated/_generated/ams.opt.optbase.OptzBase.size.rst +0 -6
  251. docs/source/_generated/_generated/ams.opt.param.Param.class_name.rst +0 -6
  252. docs/source/_generated/_generated/ams.opt.param.Param.evaluate.rst +0 -6
  253. docs/source/_generated/_generated/ams.opt.param.Param.n.rst +0 -6
  254. docs/source/_generated/_generated/ams.opt.param.Param.parse.rst +0 -6
  255. docs/source/_generated/_generated/ams.opt.param.Param.shape.rst +0 -6
  256. docs/source/_generated/_generated/ams.opt.param.Param.size.rst +0 -6
  257. docs/source/_generated/_generated/ams.opt.param.Param.update.rst +0 -6
  258. docs/source/_generated/_generated/ams.opt.var.Var.class_name.rst +0 -6
  259. docs/source/_generated/_generated/ams.opt.var.Var.evaluate.rst +0 -6
  260. docs/source/_generated/_generated/ams.opt.var.Var.get_idx.rst +0 -6
  261. docs/source/_generated/_generated/ams.opt.var.Var.n.rst +0 -6
  262. docs/source/_generated/_generated/ams.opt.var.Var.parse.rst +0 -6
  263. docs/source/_generated/_generated/ams.opt.var.Var.shape.rst +0 -6
  264. docs/source/_generated/_generated/ams.opt.var.Var.size.rst +0 -6
  265. docs/source/_generated/_generated/ams.opt.var.Var.v.rst +0 -6
  266. docs/source/_generated/_generated/ams.routines.dcopf.DCOPF.addConstrs.rst +0 -6
  267. docs/source/_generated/_generated/ams.routines.dcopf.DCOPF.addRParam.rst +0 -6
  268. docs/source/_generated/_generated/ams.routines.dcopf.DCOPF.addService.rst +0 -6
  269. docs/source/_generated/_generated/ams.routines.dcopf.DCOPF.addVars.rst +0 -6
  270. docs/source/_generated/_generated/ams.routines.dcopf.DCOPF.class_name.rst +0 -6
  271. docs/source/_generated/_generated/ams.routines.dcopf.DCOPF.dc2ac.rst +0 -6
  272. docs/source/_generated/_generated/ams.routines.dcopf.DCOPF.disable.rst +0 -6
  273. docs/source/_generated/_generated/ams.routines.dcopf.DCOPF.doc.rst +0 -6
  274. docs/source/_generated/_generated/ams.routines.dcopf.DCOPF.enable.rst +0 -6
  275. docs/source/_generated/_generated/ams.routines.dcopf.DCOPF.export_csv.rst +0 -6
  276. docs/source/_generated/_generated/ams.routines.dcopf.DCOPF.get.rst +0 -6
  277. docs/source/_generated/_generated/ams.routines.dcopf.DCOPF.init.rst +0 -6
  278. docs/source/_generated/_generated/ams.routines.dcopf.DCOPF.run.rst +0 -6
  279. docs/source/_generated/_generated/ams.routines.dcopf.DCOPF.set.rst +0 -6
  280. docs/source/_generated/_generated/ams.routines.dcopf.DCOPF.solve.rst +0 -6
  281. docs/source/_generated/_generated/ams.routines.dcopf.DCOPF.summary.rst +0 -6
  282. docs/source/_generated/_generated/ams.routines.dcopf.DCOPF.unpack.rst +0 -6
  283. docs/source/_generated/_generated/ams.routines.dcopf.DCOPF.update.rst +0 -6
  284. docs/source/_generated/_generated/ams.routines.pflow.PFlow.addConstrs.rst +0 -6
  285. docs/source/_generated/_generated/ams.routines.pflow.PFlow.addRParam.rst +0 -6
  286. docs/source/_generated/_generated/ams.routines.pflow.PFlow.addService.rst +0 -6
  287. docs/source/_generated/_generated/ams.routines.pflow.PFlow.addVars.rst +0 -6
  288. docs/source/_generated/_generated/ams.routines.pflow.PFlow.class_name.rst +0 -6
  289. docs/source/_generated/_generated/ams.routines.pflow.PFlow.dc2ac.rst +0 -6
  290. docs/source/_generated/_generated/ams.routines.pflow.PFlow.disable.rst +0 -6
  291. docs/source/_generated/_generated/ams.routines.pflow.PFlow.doc.rst +0 -6
  292. docs/source/_generated/_generated/ams.routines.pflow.PFlow.enable.rst +0 -6
  293. docs/source/_generated/_generated/ams.routines.pflow.PFlow.export_csv.rst +0 -6
  294. docs/source/_generated/_generated/ams.routines.pflow.PFlow.get.rst +0 -6
  295. docs/source/_generated/_generated/ams.routines.pflow.PFlow.init.rst +0 -6
  296. docs/source/_generated/_generated/ams.routines.pflow.PFlow.run.rst +0 -6
  297. docs/source/_generated/_generated/ams.routines.pflow.PFlow.set.rst +0 -6
  298. docs/source/_generated/_generated/ams.routines.pflow.PFlow.solve.rst +0 -6
  299. docs/source/_generated/_generated/ams.routines.pflow.PFlow.summary.rst +0 -6
  300. docs/source/_generated/_generated/ams.routines.pflow.PFlow.unpack.rst +0 -6
  301. docs/source/_generated/_generated/ams.routines.pflow.PFlow.update.rst +0 -6
  302. docs/source/_generated/_generated/ams.routines.routine.RoutineBase.addConstrs.rst +0 -6
  303. docs/source/_generated/_generated/ams.routines.routine.RoutineBase.addRParam.rst +0 -6
  304. docs/source/_generated/_generated/ams.routines.routine.RoutineBase.addService.rst +0 -6
  305. docs/source/_generated/_generated/ams.routines.routine.RoutineBase.addVars.rst +0 -6
  306. docs/source/_generated/_generated/ams.routines.routine.RoutineBase.class_name.rst +0 -6
  307. docs/source/_generated/_generated/ams.routines.routine.RoutineBase.dc2ac.rst +0 -6
  308. docs/source/_generated/_generated/ams.routines.routine.RoutineBase.disable.rst +0 -6
  309. docs/source/_generated/_generated/ams.routines.routine.RoutineBase.doc.rst +0 -6
  310. docs/source/_generated/_generated/ams.routines.routine.RoutineBase.enable.rst +0 -6
  311. docs/source/_generated/_generated/ams.routines.routine.RoutineBase.export_csv.rst +0 -6
  312. docs/source/_generated/_generated/ams.routines.routine.RoutineBase.get.rst +0 -6
  313. docs/source/_generated/_generated/ams.routines.routine.RoutineBase.init.rst +0 -6
  314. docs/source/_generated/_generated/ams.routines.routine.RoutineBase.run.rst +0 -6
  315. docs/source/_generated/_generated/ams.routines.routine.RoutineBase.set.rst +0 -6
  316. docs/source/_generated/_generated/ams.routines.routine.RoutineBase.solve.rst +0 -6
  317. docs/source/_generated/_generated/ams.routines.routine.RoutineBase.summary.rst +0 -6
  318. docs/source/_generated/_generated/ams.routines.routine.RoutineBase.unpack.rst +0 -6
  319. docs/source/_generated/_generated/ams.routines.routine.RoutineBase.update.rst +0 -6
  320. docs/source/_generated/_generated/ams.system.System.add.rst +0 -6
  321. docs/source/_generated/_generated/ams.system.System.as_dict.rst +0 -6
  322. docs/source/_generated/_generated/ams.system.System.calc_pu_coeff.rst +0 -6
  323. docs/source/_generated/_generated/ams.system.System.call_models.rst +0 -6
  324. docs/source/_generated/_generated/ams.system.System.collect_config.rst +0 -6
  325. docs/source/_generated/_generated/ams.system.System.collect_ref.rst +0 -6
  326. docs/source/_generated/_generated/ams.system.System.connectivity.rst +0 -6
  327. docs/source/_generated/_generated/ams.system.System.e_clear.rst +0 -6
  328. docs/source/_generated/_generated/ams.system.System.f_update.rst +0 -6
  329. docs/source/_generated/_generated/ams.system.System.fg_to_dae.rst +0 -6
  330. docs/source/_generated/_generated/ams.system.System.find_devices.rst +0 -6
  331. docs/source/_generated/_generated/ams.system.System.find_models.rst +0 -6
  332. docs/source/_generated/_generated/ams.system.System.from_ipysheet.rst +0 -6
  333. docs/source/_generated/_generated/ams.system.System.g_islands.rst +0 -6
  334. docs/source/_generated/_generated/ams.system.System.g_update.rst +0 -6
  335. docs/source/_generated/_generated/ams.system.System.get_z.rst +0 -6
  336. docs/source/_generated/_generated/ams.system.System.import_groups.rst +0 -6
  337. docs/source/_generated/_generated/ams.system.System.import_models.rst +0 -6
  338. docs/source/_generated/_generated/ams.system.System.import_routines.rst +0 -6
  339. docs/source/_generated/_generated/ams.system.System.import_types.rst +0 -6
  340. docs/source/_generated/_generated/ams.system.System.init.rst +0 -6
  341. docs/source/_generated/_generated/ams.system.System.j_islands.rst +0 -6
  342. docs/source/_generated/_generated/ams.system.System.j_update.rst +0 -6
  343. docs/source/_generated/_generated/ams.system.System.l_update_eq.rst +0 -6
  344. docs/source/_generated/_generated/ams.system.System.l_update_var.rst +0 -6
  345. docs/source/_generated/_generated/ams.system.System.link_ext_param.rst +0 -6
  346. docs/source/_generated/_generated/ams.system.System.precompile.rst +0 -6
  347. docs/source/_generated/_generated/ams.system.System.prepare.rst +0 -6
  348. docs/source/_generated/_generated/ams.system.System.reload.rst +0 -6
  349. docs/source/_generated/_generated/ams.system.System.remove_pycapsule.rst +0 -6
  350. docs/source/_generated/_generated/ams.system.System.report.rst +0 -6
  351. docs/source/_generated/_generated/ams.system.System.reset.rst +0 -6
  352. docs/source/_generated/_generated/ams.system.System.s_update_post.rst +0 -6
  353. docs/source/_generated/_generated/ams.system.System.s_update_var.rst +0 -6
  354. docs/source/_generated/_generated/ams.system.System.save_config.rst +0 -6
  355. docs/source/_generated/_generated/ams.system.System.set_address.rst +0 -6
  356. docs/source/_generated/_generated/ams.system.System.set_config.rst +0 -6
  357. docs/source/_generated/_generated/ams.system.System.set_dae_names.rst +0 -6
  358. docs/source/_generated/_generated/ams.system.System.set_output_subidx.rst +0 -6
  359. docs/source/_generated/_generated/ams.system.System.set_var_arrays.rst +0 -6
  360. docs/source/_generated/_generated/ams.system.System.setup.rst +0 -6
  361. docs/source/_generated/_generated/ams.system.System.store_adder_setter.rst +0 -6
  362. docs/source/_generated/_generated/ams.system.System.store_existing.rst +0 -6
  363. docs/source/_generated/_generated/ams.system.System.store_no_check_init.rst +0 -6
  364. docs/source/_generated/_generated/ams.system.System.store_sparse_pattern.rst +0 -6
  365. docs/source/_generated/_generated/ams.system.System.store_switch_times.rst +0 -6
  366. docs/source/_generated/_generated/ams.system.System.summary.rst +0 -6
  367. docs/source/_generated/_generated/ams.system.System.supported_models.rst +0 -6
  368. docs/source/_generated/_generated/ams.system.System.supported_routines.rst +0 -6
  369. docs/source/_generated/_generated/ams.system.System.switch_action.rst +0 -6
  370. docs/source/_generated/_generated/ams.system.System.to_andes.rst +0 -6
  371. docs/source/_generated/_generated/ams.system.System.to_ipysheet.rst +0 -6
  372. docs/source/_generated/_generated/ams.system.System.undill.rst +0 -6
  373. docs/source/_generated/_generated/ams.system.System.vars_to_dae.rst +0 -6
  374. docs/source/_generated/_generated/ams.system.System.vars_to_models.rst +0 -6
  375. docs/source/_generated/_generated/ams.utils.paths.DisplayablePath.display_filename_prefix_last.rst +0 -6
  376. docs/source/_generated/_generated/ams.utils.paths.DisplayablePath.display_filename_prefix_middle.rst +0 -6
  377. docs/source/_generated/_generated/ams.utils.paths.DisplayablePath.display_parent_prefix_last.rst +0 -6
  378. docs/source/_generated/_generated/ams.utils.paths.DisplayablePath.display_parent_prefix_middle.rst +0 -6
  379. docs/source/_generated/_generated/ams.utils.paths.DisplayablePath.displayable.rst +0 -6
  380. docs/source/_generated/_generated/ams.utils.paths.DisplayablePath.displayname.rst +0 -6
  381. docs/source/_generated/_generated/ams.utils.paths.DisplayablePath.make_tree.rst +0 -6
  382. docs/source/_generated/ams.cli.create_parser.rst +0 -6
  383. docs/source/_generated/ams.cli.main.rst +0 -6
  384. docs/source/_generated/ams.cli.preamble.rst +0 -6
  385. docs/source/_generated/ams.cli.rst +0 -32
  386. docs/source/_generated/ams.core.model.Model.rst +0 -56
  387. docs/source/_generated/ams.core.model.rst +0 -30
  388. docs/source/_generated/ams.core.param.RParam.rst +0 -49
  389. docs/source/_generated/ams.core.param.rst +0 -30
  390. docs/source/_generated/ams.core.service.LoadScale.rst +0 -51
  391. docs/source/_generated/ams.core.service.MinDur.rst +0 -53
  392. docs/source/_generated/ams.core.service.NumExpandDim.rst +0 -53
  393. docs/source/_generated/ams.core.service.NumHstack.rst +0 -53
  394. docs/source/_generated/ams.core.service.NumOp.rst +0 -53
  395. docs/source/_generated/ams.core.service.NumOpDual.rst +0 -53
  396. docs/source/_generated/ams.core.service.RBaseService.rst +0 -51
  397. docs/source/_generated/ams.core.service.ROperationService.rst +0 -51
  398. docs/source/_generated/ams.core.service.RampSub.rst +0 -53
  399. docs/source/_generated/ams.core.service.ValueService.rst +0 -51
  400. docs/source/_generated/ams.core.service.VarReduction.rst +0 -53
  401. docs/source/_generated/ams.core.service.VarSelect.rst +0 -53
  402. docs/source/_generated/ams.core.service.ZonalSum.rst +0 -53
  403. docs/source/_generated/ams.core.service.rst +0 -42
  404. docs/source/_generated/ams.interface.Dynamic.rst +0 -41
  405. docs/source/_generated/ams.interface.build_group_table.rst +0 -6
  406. docs/source/_generated/ams.interface.make_link_table.rst +0 -6
  407. docs/source/_generated/ams.interface.parse_addfile.rst +0 -6
  408. docs/source/_generated/ams.interface.replace_dev.rst +0 -6
  409. docs/source/_generated/ams.interface.rst +0 -43
  410. docs/source/_generated/ams.interface.sync_adsys.rst +0 -6
  411. docs/source/_generated/ams.interface.to_andes.rst +0 -6
  412. docs/source/_generated/ams.interface.verify_pf.rst +0 -6
  413. docs/source/_generated/ams.io.guess.rst +0 -6
  414. docs/source/_generated/ams.io.json.rst +0 -30
  415. docs/source/_generated/ams.io.json.write.rst +0 -6
  416. docs/source/_generated/ams.io.matpower.mpc2system.rst +0 -6
  417. docs/source/_generated/ams.io.matpower.read.rst +0 -6
  418. docs/source/_generated/ams.io.matpower.rst +0 -33
  419. docs/source/_generated/ams.io.matpower.system2mpc.rst +0 -6
  420. docs/source/_generated/ams.io.matpower.testlines.rst +0 -6
  421. docs/source/_generated/ams.io.parse.rst +0 -6
  422. docs/source/_generated/ams.io.psse.rst +0 -23
  423. docs/source/_generated/ams.io.pypower.ppc2system.rst +0 -6
  424. docs/source/_generated/ams.io.pypower.py2ppc.rst +0 -6
  425. docs/source/_generated/ams.io.pypower.read.rst +0 -6
  426. docs/source/_generated/ams.io.pypower.rst +0 -34
  427. docs/source/_generated/ams.io.pypower.system2ppc.rst +0 -6
  428. docs/source/_generated/ams.io.pypower.testlines.rst +0 -6
  429. docs/source/_generated/ams.io.rst +0 -45
  430. docs/source/_generated/ams.io.xlsx.rst +0 -30
  431. docs/source/_generated/ams.io.xlsx.write.rst +0 -6
  432. docs/source/_generated/ams.main.config_logger.rst +0 -6
  433. docs/source/_generated/ams.main.demo.rst +0 -6
  434. docs/source/_generated/ams.main.doc.rst +0 -6
  435. docs/source/_generated/ams.main.edit_conf.rst +0 -6
  436. docs/source/_generated/ams.main.find_log_path.rst +0 -6
  437. docs/source/_generated/ams.main.load.rst +0 -6
  438. docs/source/_generated/ams.main.misc.rst +0 -6
  439. docs/source/_generated/ams.main.print_license.rst +0 -6
  440. docs/source/_generated/ams.main.remove_output.rst +0 -6
  441. docs/source/_generated/ams.main.rst +0 -44
  442. docs/source/_generated/ams.main.run.rst +0 -6
  443. docs/source/_generated/ams.main.run_case.rst +0 -6
  444. docs/source/_generated/ams.main.save_conf.rst +0 -6
  445. docs/source/_generated/ams.main.selftest.rst +0 -6
  446. docs/source/_generated/ams.main.set_logger_level.rst +0 -6
  447. docs/source/_generated/ams.main.versioninfo.rst +0 -6
  448. docs/source/_generated/ams.opt.constraint.Constraint.rst +0 -43
  449. docs/source/_generated/ams.opt.constraint.rst +0 -30
  450. docs/source/_generated/ams.opt.exprcalc.ExpressionCalc.rst +0 -46
  451. docs/source/_generated/ams.opt.exprcalc.rst +0 -30
  452. docs/source/_generated/ams.opt.expression.Expression.rst +0 -46
  453. docs/source/_generated/ams.opt.expression.rst +0 -30
  454. docs/source/_generated/ams.opt.objective.Objective.rst +0 -43
  455. docs/source/_generated/ams.opt.objective.rst +0 -30
  456. docs/source/_generated/ams.opt.omodel.OModel.rst +0 -48
  457. docs/source/_generated/ams.opt.omodel.OModelBase.rst +0 -48
  458. docs/source/_generated/ams.opt.omodel.rst +0 -31
  459. docs/source/_generated/ams.opt.optbase.OptzBase.rst +0 -41
  460. docs/source/_generated/ams.opt.optbase.ensure_mats_and_parsed.rst +0 -6
  461. docs/source/_generated/ams.opt.optbase.ensure_symbols.rst +0 -6
  462. docs/source/_generated/ams.opt.optbase.rst +0 -38
  463. docs/source/_generated/ams.opt.param.Param.rst +0 -44
  464. docs/source/_generated/ams.opt.param.rst +0 -30
  465. docs/source/_generated/ams.opt.rst +0 -40
  466. docs/source/_generated/ams.opt.var.Var.rst +0 -45
  467. docs/source/_generated/ams.opt.var.rst +0 -30
  468. docs/source/_generated/ams.routines.dcopf.DCOPF.rst +0 -83
  469. docs/source/_generated/ams.routines.dcopf.rst +0 -30
  470. docs/source/_generated/ams.routines.pflow.PFlow.rst +0 -83
  471. docs/source/_generated/ams.routines.pflow.rst +0 -30
  472. docs/source/_generated/ams.routines.routine.RoutineBase.rst +0 -83
  473. docs/source/_generated/ams.routines.routine.collect_data.rst +0 -6
  474. docs/source/_generated/ams.routines.routine.initialize_data_dict.rst +0 -6
  475. docs/source/_generated/ams.routines.routine.rst +0 -38
  476. docs/source/_generated/ams.system.System.rst +0 -189
  477. docs/source/_generated/ams.system.disable_method.rst +0 -6
  478. docs/source/_generated/ams.system.disable_methods.rst +0 -6
  479. docs/source/_generated/ams.system.example.rst +0 -6
  480. docs/source/_generated/ams.system.rst +0 -39
  481. docs/source/_generated/ams.utils.paths.DisplayablePath.rst +0 -42
  482. docs/source/_generated/ams.utils.paths.ams_root.rst +0 -6
  483. docs/source/_generated/ams.utils.paths.cases_root.rst +0 -6
  484. docs/source/_generated/ams.utils.paths.confirm_overwrite.rst +0 -6
  485. docs/source/_generated/ams.utils.paths.get_case.rst +0 -6
  486. docs/source/_generated/ams.utils.paths.get_config_path.rst +0 -6
  487. docs/source/_generated/ams.utils.paths.get_dot_andes_path.rst +0 -6
  488. docs/source/_generated/ams.utils.paths.get_log_dir.rst +0 -6
  489. docs/source/_generated/ams.utils.paths.get_pkl_path.rst +0 -6
  490. docs/source/_generated/ams.utils.paths.get_pycode_path.rst +0 -6
  491. docs/source/_generated/ams.utils.paths.list_cases.rst +0 -6
  492. docs/source/_generated/ams.utils.paths.rst +0 -47
  493. docs/source/_generated/ams.utils.paths.tests_root.rst +0 -6
  494. docs/source/groupdoc/ACLine.rst +0 -92
  495. docs/source/groupdoc/ACShort.rst +0 -51
  496. docs/source/groupdoc/ACTopology.rst +0 -66
  497. docs/source/groupdoc/Collection.rst +0 -84
  498. docs/source/groupdoc/Cost.rst +0 -135
  499. docs/source/groupdoc/DG.rst +0 -204
  500. docs/source/groupdoc/Horizon.rst +0 -97
  501. docs/source/groupdoc/Information.rst +0 -36
  502. docs/source/groupdoc/RenGen.rst +0 -63
  503. docs/source/groupdoc/Reserve.rst +0 -135
  504. docs/source/groupdoc/StaticGen.rst +0 -229
  505. docs/source/groupdoc/StaticLoad.rst +0 -53
  506. docs/source/groupdoc/StaticShunt.rst +0 -45
  507. docs/source/groupdoc/Undefined.rst +0 -63
  508. docs/source/groupdoc/VSG.rst +0 -125
  509. docs/source/modeling/_generated/_generated/ams.opt.Constraint.class_name.rst +0 -6
  510. docs/source/modeling/_generated/_generated/ams.opt.Constraint.e.rst +0 -6
  511. docs/source/modeling/_generated/_generated/ams.opt.Constraint.evaluate.rst +0 -6
  512. docs/source/modeling/_generated/_generated/ams.opt.Constraint.n.rst +0 -6
  513. docs/source/modeling/_generated/_generated/ams.opt.Constraint.parse.rst +0 -6
  514. docs/source/modeling/_generated/_generated/ams.opt.Constraint.shape.rst +0 -6
  515. docs/source/modeling/_generated/_generated/ams.opt.Constraint.size.rst +0 -6
  516. docs/source/modeling/_generated/_generated/ams.opt.Constraint.v.rst +0 -6
  517. docs/source/modeling/_generated/_generated/ams.opt.OModel.class_name.rst +0 -6
  518. docs/source/modeling/_generated/_generated/ams.opt.OModel.evaluate.rst +0 -6
  519. docs/source/modeling/_generated/_generated/ams.opt.OModel.finalize.rst +0 -6
  520. docs/source/modeling/_generated/_generated/ams.opt.OModel.init.rst +0 -6
  521. docs/source/modeling/_generated/_generated/ams.opt.OModel.initialized.rst +0 -6
  522. docs/source/modeling/_generated/_generated/ams.opt.OModel.parse.rst +0 -6
  523. docs/source/modeling/_generated/_generated/ams.opt.OModel.update.rst +0 -6
  524. docs/source/modeling/_generated/_generated/ams.opt.Objective.class_name.rst +0 -6
  525. docs/source/modeling/_generated/_generated/ams.opt.Objective.e.rst +0 -6
  526. docs/source/modeling/_generated/_generated/ams.opt.Objective.evaluate.rst +0 -6
  527. docs/source/modeling/_generated/_generated/ams.opt.Objective.n.rst +0 -6
  528. docs/source/modeling/_generated/_generated/ams.opt.Objective.parse.rst +0 -6
  529. docs/source/modeling/_generated/_generated/ams.opt.Objective.shape.rst +0 -6
  530. docs/source/modeling/_generated/_generated/ams.opt.Objective.size.rst +0 -6
  531. docs/source/modeling/_generated/_generated/ams.opt.Objective.v.rst +0 -6
  532. docs/source/modeling/_generated/_generated/ams.opt.Var.class_name.rst +0 -6
  533. docs/source/modeling/_generated/_generated/ams.opt.Var.evaluate.rst +0 -6
  534. docs/source/modeling/_generated/_generated/ams.opt.Var.get_idx.rst +0 -6
  535. docs/source/modeling/_generated/_generated/ams.opt.Var.n.rst +0 -6
  536. docs/source/modeling/_generated/_generated/ams.opt.Var.parse.rst +0 -6
  537. docs/source/modeling/_generated/_generated/ams.opt.Var.shape.rst +0 -6
  538. docs/source/modeling/_generated/_generated/ams.opt.Var.size.rst +0 -6
  539. docs/source/modeling/_generated/_generated/ams.opt.Var.v.rst +0 -6
  540. docs/source/modeling/_generated/ams.opt.Constraint.rst +0 -43
  541. docs/source/modeling/_generated/ams.opt.OModel.rst +0 -48
  542. docs/source/modeling/_generated/ams.opt.Objective.rst +0 -43
  543. docs/source/modeling/_generated/ams.opt.Var.rst +0 -45
  544. docs/source/modelref.rst +0 -66
  545. docs/source/routineref.rst +0 -38
  546. docs/source/typedoc/ACED.rst +0 -91
  547. docs/source/typedoc/DCED.rst +0 -1869
  548. docs/source/typedoc/DCUC.rst +0 -899
  549. docs/source/typedoc/DED.rst +0 -390
  550. docs/source/typedoc/PF.rst +0 -376
  551. docs/source/typedoc/UndefinedType.rst +0 -8
  552. icebar/ips/ips.py +0 -668
  553. ltbams-1.0.0.dist-info/RECORD +0 -725
  554. ltbams-1.0.0.dist-info/top_level.txt +0 -5
  555. {ltbams-1.0.0.dist-info → ltbams-1.0.2.dist-info}/WHEEL +0 -0
  556. {ltbams-1.0.0.dist-info → ltbams-1.0.2.dist-info}/entry_points.txt +0 -0
icebar/ips/ips.py DELETED
@@ -1,668 +0,0 @@
1
-
2
- """
3
- Interior Point Solver (PIPS).
4
- """
5
-
6
- # Original Author: Richard Lincoln
7
- # Original License: BSD 3-Clause License
8
- # PIPS is ported by Richard Lincoln from the MATLAB Interior Point Solver (MIPS)
9
- # (v1.9) by Ray Zimmerman. MIPS is distributed as part of the MATPOWER
10
- # project, developed at the Power System Engineering Research Center (PSERC),
11
- # Cornell. See U{http://www.pserc.cornell.edu/matpower/} for more info.
12
- # MIPS was ported by Ray Zimmerman from C code written by H. Wang for his
13
- # PhD dissertation:
14
- # - "On the Computation and Application of Multi-period
15
- # Security-Constrained Optimal Power Flow for Real-time
16
- # Electricity Market Operations", Cornell University, May 2007.
17
-
18
- # Modifid by Jinning Wang, 2023
19
-
20
- from numpy import array, Inf, any, isnan, ones, r_, finfo, \
21
- zeros, dot, absolute, log, flatnonzero as find
22
-
23
- from numpy.linalg import norm
24
-
25
- from scipy.sparse import vstack, hstack, eye, csr_matrix as sparse
26
-
27
- from pypower.pipsver import pipsver
28
- from pypower.pplinsolve import pplinsolve
29
-
30
-
31
- EPS = finfo(float).eps
32
-
33
-
34
- def pips(f_fcn, x0=None, A=None, l=None, u=None, xmin=None, xmax=None,
35
- gh_fcn=None, hess_fcn=None, opt=None):
36
- """Primal-dual interior point method for NLP (nonlinear programming).
37
- Minimize a function F(X) beginning from a starting point M{x0}, subject to
38
- optional linear and nonlinear constraints and variable bounds::
39
-
40
- min f(x)
41
- x
42
-
43
- subject to::
44
-
45
- g(x) = 0 (nonlinear equalities)
46
- h(x) <= 0 (nonlinear inequalities)
47
- l <= A*x <= u (linear constraints)
48
- xmin <= x <= xmax (variable bounds)
49
-
50
- Note: The calling syntax is almost identical to that of FMINCON from
51
- MathWorks' Optimization Toolbox. The main difference is that the linear
52
- constraints are specified with C{A}, C{L}, C{U} instead of C{A}, C{B},
53
- C{Aeq}, C{Beq}. The functions for evaluating the objective function,
54
- constraints and Hessian are identical.
55
-
56
- Example from U{http://en.wikipedia.org/wiki/Nonlinear_programming}:
57
- >>> from numpy import array, r_, float64, dot
58
- >>> from scipy.sparse import csr_matrix
59
- >>> def f2(x):
60
- ... f = -x[0] * x[1] - x[1] * x[2]
61
- ... df = -r_[x[1], x[0] + x[2], x[1]]
62
- ... # actually not used since 'hess_fcn' is provided
63
- ... d2f = -array([[0, 1, 0], [1, 0, 1], [0, 1, 0]], float64)
64
- ... return f, df, d2f
65
- >>> def gh2(x):
66
- ... h = dot(array([[1, -1, 1],
67
- ... [1, 1, 1]]), x**2) + array([-2.0, -10.0])
68
- ... dh = 2 * csr_matrix(array([[ x[0], x[0]],
69
- ... [-x[1], x[1]],
70
- ... [ x[2], x[2]]]))
71
- ... g = array([])
72
- ... dg = None
73
- ... return h, g, dh, dg
74
- >>> def hess2(x, lam, cost_mult=1):
75
- ... mu = lam["ineqnonlin"]
76
- ... a = r_[dot(2 * array([1, 1]), mu), -1, 0]
77
- ... b = r_[-1, dot(2 * array([-1, 1]), mu),-1]
78
- ... c = r_[0, -1, dot(2 * array([1, 1]), mu)]
79
- ... Lxx = csr_matrix(array([a, b, c]))
80
- ... return Lxx
81
- >>> x0 = array([1, 1, 0], float64)
82
- >>> solution = pips(f2, x0, gh_fcn=gh2, hess_fcn=hess2)
83
- >>> round(solution["f"], 11) == -7.07106725919
84
- True
85
- >>> solution["output"]["iterations"]
86
- 8
87
-
88
- Ported by Richard Lincoln from the MATLAB Interior Point Solver (MIPS)
89
- (v1.9) by Ray Zimmerman. MIPS is distributed as part of the MATPOWER
90
- project, developed at the Power System Engineering Research Center (PSERC) (PSERC),
91
- Cornell. See U{http://www.pserc.cornell.edu/matpower/} for more info.
92
- MIPS was ported by Ray Zimmerman from C code written by H. Wang for his
93
- PhD dissertation:
94
- - "On the Computation and Application of Multi-period
95
- Security-Constrained Optimal Power Flow for Real-time
96
- Electricity Market Operations", Cornell University, May 2007.
97
-
98
- See also:
99
- - H. Wang, C. E. Murillo-Sanchez, R. D. Zimmerman, R. J. Thomas,
100
- "On Computational Issues of Market-Based Optimal Power Flow",
101
- IEEE Transactions on Power Systems, Vol. 22, No. 3, Aug. 2007,
102
- pp. 1185-1193.
103
-
104
- All parameters are optional except C{f_fcn} and C{x0}.
105
- @param f_fcn: Function that evaluates the objective function, its gradients
106
- and Hessian for a given value of M{x}. If there are
107
- nonlinear constraints, the Hessian information is provided
108
- by the 'hess_fcn' argument and is not required here.
109
- @type f_fcn: callable
110
- @param x0: Starting value of optimization vector M{x}.
111
- @type x0: array
112
- @param A: Optional linear constraints.
113
- @type A: csr_matrix
114
- @param l: Optional linear constraints. Default values are M{-Inf}.
115
- @type l: array
116
- @param u: Optional linear constraints. Default values are M{Inf}.
117
- @type u: array
118
- @param xmin: Optional lower bounds on the M{x} variables, defaults are
119
- M{-Inf}.
120
- @type xmin: array
121
- @param xmax: Optional upper bounds on the M{x} variables, defaults are
122
- M{Inf}.
123
- @type xmax: array
124
- @param gh_fcn: Function that evaluates the optional nonlinear constraints
125
- and their gradients for a given value of M{x}.
126
- @type gh_fcn: callable
127
- @param hess_fcn: Handle to function that computes the Hessian of the
128
- Lagrangian for given values of M{x}, M{lambda} and M{mu},
129
- where M{lambda} and M{mu} are the multipliers on the
130
- equality and inequality constraints, M{g} and M{h},
131
- respectively.
132
- @type hess_fcn: callable
133
- @param opt: optional options dictionary with the following keys, all of
134
- which are also optional (default values shown in parentheses)
135
- - C{verbose} (False) - Controls level of progress output
136
- displayed
137
- - C{feastol} (1e-6) - termination tolerance for feasibility
138
- condition
139
- - C{gradtol} (1e-6) - termination tolerance for gradient
140
- condition
141
- - C{comptol} (1e-6) - termination tolerance for
142
- complementarity condition
143
- - C{costtol} (1e-6) - termination tolerance for cost
144
- condition
145
- - C{max_it} (150) - maximum number of iterations
146
- - C{step_control} (False) - set to True to enable step-size
147
- control
148
- - C{max_red} (20) - maximum number of step-size reductions if
149
- step-control is on
150
- - C{cost_mult} (1.0) - cost multiplier used to scale the
151
- objective function for improved conditioning. Note: This
152
- value is also passed as the 3rd argument to the Hessian
153
- evaluation function so that it can appropriately scale the
154
- objective function term in the Hessian of the Lagrangian.
155
- @type opt: dict
156
-
157
- @rtype: dict
158
- @return: The solution dictionary has the following keys:
159
- - C{x} - solution vector
160
- - C{f} - final objective function value
161
- - C{converged} - exit status
162
- - True = first order optimality conditions satisfied
163
- - False = maximum number of iterations reached
164
- - None = numerically failed
165
- - C{output} - output dictionary with keys:
166
- - C{iterations} - number of iterations performed
167
- - C{hist} - list of arrays with trajectories of the
168
- following: feascond, gradcond, compcond, costcond, gamma,
169
- stepsize, obj, alphap, alphad
170
- - C{message} - exit message
171
- - C{lmbda} - dictionary containing the Langrange and Kuhn-Tucker
172
- multipliers on the constraints, with keys:
173
- - C{eqnonlin} - nonlinear equality constraints
174
- - C{ineqnonlin} - nonlinear inequality constraints
175
- - C{mu_l} - lower (left-hand) limit on linear constraints
176
- - C{mu_u} - upper (right-hand) limit on linear constraints
177
- - C{lower} - lower bound on optimization variables
178
- - C{upper} - upper bound on optimization variables
179
-
180
- @see: U{http://www.pserc.cornell.edu/matpower/}
181
-
182
- @author: Ray Zimmerman (PSERC Cornell)
183
- """
184
- if isinstance(f_fcn, dict): # problem dict
185
- p = f_fcn
186
- f_fcn = p['f_fcn']
187
- x0 = p['x0']
188
- if 'opt' in p:
189
- opt = p['opt']
190
- if 'hess_fcn' in p:
191
- hess_fcn = p['hess_fcn']
192
- if 'gh_fcn' in p:
193
- gh_fcn = p['gh_fcn']
194
- if 'xmax' in p:
195
- xmax = p['xmax']
196
- if 'xmin' in p:
197
- xmin = p['xmin']
198
- if 'u' in p:
199
- u = p['u']
200
- if 'l' in p:
201
- l = p['l']
202
- if 'A' in p:
203
- A = p['A']
204
-
205
- nx = x0.shape[0] # number of variables
206
- nA = A.shape[0] if A is not None else 0 # number of original linear constr
207
-
208
- # default argument values
209
- if l is None or len(l) == 0:
210
- l = -Inf * ones(nA)
211
- if u is None or len(u) == 0:
212
- u = Inf * ones(nA)
213
- if xmin is None or len(xmin) == 0:
214
- xmin = -Inf * ones(x0.shape[0])
215
- if xmax is None or len(xmax) == 0:
216
- xmax = Inf * ones(x0.shape[0])
217
- if gh_fcn is None:
218
- nonlinear = False
219
- gn = array([])
220
- hn = array([])
221
- else:
222
- nonlinear = True
223
-
224
- if opt is None:
225
- opt = {}
226
- # options
227
- if "feastol" not in opt:
228
- opt["feastol"] = 1e-06
229
- if "gradtol" not in opt:
230
- opt["gradtol"] = 1e-06
231
- if "comptol" not in opt:
232
- opt["comptol"] = 1e-06
233
- if "costtol" not in opt:
234
- opt["costtol"] = 1e-06
235
- if "max_it" not in opt:
236
- opt["max_it"] = 150
237
- if "max_red" not in opt:
238
- opt["max_red"] = 20
239
- if "step_control" not in opt:
240
- opt["step_control"] = False
241
- if "cost_mult" not in opt:
242
- opt["cost_mult"] = 1
243
- if "verbose" not in opt:
244
- opt["verbose"] = 0
245
-
246
- # initialize history
247
- hist = []
248
-
249
- # constants
250
- xi = 0.99995
251
- sigma = 0.1
252
- z0 = 1
253
- alpha_min = 1e-8
254
- rho_min = 0.95
255
- rho_max = 1.05
256
- mu_threshold = 1e-5
257
-
258
- # initialize
259
- i = 0 # iteration counter
260
- converged = False # flag
261
- eflag = False # exit flag
262
-
263
- # add var limits to linear constraints
264
- eyex = eye(nx, nx, format="csr")
265
- AA = eyex if A is None else vstack([eyex, A], "csr")
266
- ll = r_[xmin, l]
267
- uu = r_[xmax, u]
268
-
269
- # split up linear constraints
270
- ieq = find(absolute(uu - ll) <= EPS)
271
- igt = find((uu >= 1e10) & (ll > -1e10))
272
- ilt = find((ll <= -1e10) & (uu < 1e10))
273
- ibx = find((absolute(uu - ll) > EPS) & (uu < 1e10) & (ll > -1e10))
274
- # zero-sized sparse matrices unsupported
275
- Ae = AA[ieq, :] if len(ieq) else None
276
- if len(ilt) or len(igt) or len(ibx):
277
- idxs = [(1, ilt), (-1, igt), (1, ibx), (-1, ibx)]
278
- Ai = vstack([sig * AA[idx, :] for sig, idx in idxs if len(idx)], 'csr')
279
- else:
280
- Ai = None
281
- be = uu[ieq]
282
- bi = r_[uu[ilt], -ll[igt], uu[ibx], -ll[ibx]]
283
-
284
- # evaluate cost f(x0) and constraints g(x0), h(x0)
285
- x = x0
286
- f, df = f_fcn(x) # cost
287
- f = f * opt["cost_mult"]
288
- df = df * opt["cost_mult"]
289
- if nonlinear:
290
- hn, gn, dhn, dgn = gh_fcn(x) # nonlinear constraints
291
- h = hn if Ai is None else r_[hn, Ai * x - bi] # inequality constraints
292
- g = gn if Ae is None else r_[gn, Ae * x - be] # equality constraints
293
-
294
- if (dhn is None) and (Ai is None):
295
- dh = None
296
- elif dhn is None:
297
- dh = Ai.T
298
- elif Ai is None:
299
- dh = dhn
300
- else:
301
- dh = hstack([dhn, Ai.T])
302
-
303
- if (dgn is None) and (Ae is None):
304
- dg = None
305
- elif dgn is None:
306
- dg = Ae.T
307
- elif Ae is None:
308
- dg = dgn
309
- else:
310
- dg = hstack([dgn, Ae.T])
311
- else:
312
- h = -bi if Ai is None else Ai * x - bi # inequality constraints
313
- g = -be if Ae is None else Ae * x - be # equality constraints
314
- dh = None if Ai is None else Ai.T # 1st derivative of inequalities
315
- dg = None if Ae is None else Ae.T # 1st derivative of equalities
316
-
317
- # some dimensions
318
- neq = g.shape[0] # number of equality constraints
319
- niq = h.shape[0] # number of inequality constraints
320
- neqnln = gn.shape[0] # number of nonlinear equality constraints
321
- niqnln = hn.shape[0] # number of nonlinear inequality constraints
322
- nlt = len(ilt) # number of upper bounded linear inequalities
323
- ngt = len(igt) # number of lower bounded linear inequalities
324
- nbx = len(ibx) # number of doubly bounded linear inequalities
325
-
326
- # initialize gamma, lam, mu, z, e
327
- gamma = 1 # barrier coefficient
328
- lam = zeros(neq)
329
- z = z0 * ones(niq)
330
- mu = z0 * ones(niq)
331
- k = find(h < -z0)
332
- z[k] = -h[k]
333
- k = find((gamma / z) > z0)
334
- mu[k] = gamma / z[k]
335
- e = ones(niq)
336
-
337
- # check tolerance
338
- f0 = f
339
- if opt["step_control"]:
340
- L = f + dot(lam, g) + dot(mu, h + z) - gamma * sum(log(z))
341
-
342
- Lx = df.copy()
343
- Lx = Lx + dg * lam if dg is not None else Lx
344
- Lx = Lx + dh * mu if dh is not None else Lx
345
-
346
- maxh = zeros(1) if len(h) == 0 else max(h)
347
-
348
- gnorm = norm(g, Inf) if len(g) else 0.0
349
- lam_norm = norm(lam, Inf) if len(lam) else 0.0
350
- mu_norm = norm(mu, Inf) if len(mu) else 0.0
351
- znorm = norm(z, Inf) if len(z) else 0.0
352
- feascond = \
353
- max([gnorm, maxh]) / (1 + max([norm(x, Inf), znorm]))
354
- gradcond = \
355
- norm(Lx, Inf) / (1 + max([lam_norm, mu_norm]))
356
- compcond = dot(z, mu) / (1 + norm(x, Inf))
357
- costcond = absolute(f - f0) / (1 + absolute(f0))
358
-
359
- # save history
360
- hist.append({'feascond': feascond, 'gradcond': gradcond,
361
- 'compcond': compcond, 'costcond': costcond, 'gamma': gamma,
362
- 'stepsize': 0, 'obj': f / opt["cost_mult"], 'alphap': 0, 'alphad': 0})
363
-
364
- if opt["verbose"]:
365
- s = '-sc' if opt["step_control"] else ''
366
- v = pipsver('all')
367
- print('Python Interior Point Solver - PIPS%s, Version %s, %s' %
368
- (s, v['Version'], v['Date']))
369
- if opt['verbose'] > 1:
370
- print(" it objective step size feascond gradcond "
371
- "compcond costcond ")
372
- print("---- ------------ --------- ------------ ------------ "
373
- "------------ ------------")
374
- print("%3d %12.8g %10s %12g %12g %12g %12g" %
375
- (i, (f / opt["cost_mult"]), "",
376
- feascond, gradcond, compcond, costcond))
377
-
378
- if feascond < opt["feastol"] and gradcond < opt["gradtol"] and \
379
- compcond < opt["comptol"] and costcond < opt["costtol"]:
380
- converged = True
381
- if opt["verbose"]:
382
- print("Converged!")
383
-
384
- # do Newton iterations
385
- while (not converged) and (i < opt["max_it"]):
386
- # update iteration counter
387
- i += 1
388
-
389
- # compute update step
390
- lmbda = {"eqnonlin": lam[range(neqnln)],
391
- "ineqnonlin": mu[range(niqnln)]}
392
- if nonlinear:
393
- if hess_fcn is None:
394
- print("pips: Hessian evaluation via finite differences "
395
- "not yet implemented.\nPlease provide "
396
- "your own hessian evaluation function.")
397
- Lxx = hess_fcn(x, lmbda, opt["cost_mult"])
398
- else:
399
- _, _, d2f = f_fcn(x, True) # cost
400
- Lxx = d2f * opt["cost_mult"]
401
- rz = range(len(z))
402
- zinvdiag = sparse((1.0 / z, (rz, rz))) if len(z) else None
403
- rmu = range(len(mu))
404
- mudiag = sparse((mu, (rmu, rmu))) if len(mu) else None
405
- dh_zinv = None if dh is None else dh * zinvdiag
406
- M = Lxx if dh is None else Lxx + dh_zinv * mudiag * dh.T
407
- N = Lx if dh is None else Lx + dh_zinv * (mudiag * h + gamma * e)
408
-
409
- Ab = sparse(M) if dg is None else vstack([
410
- hstack([M, dg]),
411
- hstack([dg.T, sparse((neq, neq))])
412
- ])
413
- bb = r_[-N, -g]
414
-
415
- dxdlam = pplinsolve(Ab.tocsr(), bb)
416
-
417
- if any(isnan(dxdlam)):
418
- if opt["verbose"]:
419
- print('\nNumerically Failed\n')
420
- eflag = -1
421
- break
422
-
423
- dx = dxdlam[:nx]
424
- dlam = dxdlam[nx:nx + neq]
425
- dz = -h - z if dh is None else -h - z - dh.T * dx
426
- dmu = -mu if dh is None else -mu + zinvdiag * (gamma * e - mudiag * dz)
427
-
428
- # optional step-size control
429
- sc = False
430
- if opt["step_control"]:
431
- x1 = x + dx
432
-
433
- # evaluate cost, constraints, derivatives at x1
434
- f1, df1 = f_fcn(x1) # cost
435
- f1 = f1 * opt["cost_mult"]
436
- df1 = df1 * opt["cost_mult"]
437
- if nonlinear:
438
- hn1, gn1, dhn1, dgn1 = gh_fcn(x1) # nonlinear constraints
439
-
440
- h1 = hn1 if Ai is None else r_[hn1, Ai * x1 - bi] # ieq constraints
441
- g1 = gn1 if Ae is None else r_[gn1, Ae * x1 - be] # eq constraints
442
-
443
- # 1st der of ieq
444
- if (dhn1 is None) and (Ai is None):
445
- dh1 = None
446
- elif dhn1 is None:
447
- dh1 = Ai.T
448
- elif Ai is None:
449
- dh1 = dhn1
450
- else:
451
- dh1 = hstack([dhn1, Ai.T])
452
-
453
- # 1st der of eqs
454
- if (dgn1 is None) and (Ae is None):
455
- dg1 = None
456
- elif dgn is None:
457
- dg1 = Ae.T
458
- elif Ae is None:
459
- dg1 = dgn1
460
- else:
461
- dg1 = hstack([dgn1, Ae.T])
462
- else:
463
- h1 = -bi if Ai is None else Ai * x1 - bi # inequality constraints
464
- g1 = -be if Ae is None else Ae * x1 - be # equality constraints
465
-
466
- dh1 = dh # 1st derivative of inequalities
467
- dg1 = dg # 1st derivative of equalities
468
-
469
- # check tolerance
470
- Lx1 = df1
471
- Lx1 = Lx1 + dg1 * lam if dg1 is not None else Lx1
472
- Lx1 = Lx1 + dh1 * mu if dh1 is not None else Lx1
473
-
474
- maxh1 = zeros(1) if len(h1) == 0 else max(h1)
475
-
476
- g1norm = norm(g1, Inf) if len(g1) else 0.0
477
- lam1_norm = norm(lam, Inf) if len(lam) else 0.0
478
- mu1_norm = norm(mu, Inf) if len(mu) else 0.0
479
- z1norm = norm(z, Inf) if len(z) else 0.0
480
-
481
- feascond1 = max([g1norm, maxh1]) / \
482
- (1 + max([norm(x1, Inf), z1norm]))
483
- gradcond1 = norm(Lx1, Inf) / (1 + max([lam1_norm, mu1_norm]))
484
-
485
- if (feascond1 > feascond) and (gradcond1 > gradcond):
486
- sc = True
487
- if sc:
488
- alpha = 1.0
489
- for j in range(opt["max_red"]):
490
- dx1 = alpha * dx
491
- x1 = x + dx1
492
- f1, _ = f_fcn(x1) # cost
493
- f1 = f1 * opt["cost_mult"]
494
- if nonlinear:
495
- hn1, gn1, _, _ = gh_fcn(x1) # nonlinear constraints
496
- h1 = hn1 if Ai is None else r_[hn1, Ai * x1 - bi] # inequality constraints
497
- g1 = gn1 if Ae is None else r_[gn1, Ae * x1 - be] # equality constraints
498
- else:
499
- h1 = -bi if Ai is None else Ai * x1 - bi # inequality constraints
500
- g1 = -be if Ae is None else Ae * x1 - be # equality constraints
501
-
502
- L1 = f1 + dot(lam, g1) + dot(mu, h1 + z) - gamma * sum(log(z))
503
-
504
- if opt["verbose"] > 2:
505
- print(" %3d %10.5f" % (-j, norm(dx1)))
506
-
507
- rho = (L1 - L) / (dot(Lx, dx1) + 0.5 * dot(dx1, Lxx * dx1))
508
-
509
- if (rho > rho_min) and (rho < rho_max):
510
- break
511
- else:
512
- alpha = alpha / 2.0
513
- dx = alpha * dx
514
- dz = alpha * dz
515
- dlam = alpha * dlam
516
- dmu = alpha * dmu
517
-
518
- # do the update
519
- k = find(dz < 0.0)
520
- alphap = min([xi * min(z[k] / -dz[k]), 1]) if len(k) else 1.0
521
- k = find(dmu < 0.0)
522
- alphad = min([xi * min(mu[k] / -dmu[k]), 1]) if len(k) else 1.0
523
- x = x + alphap * dx
524
- z = z + alphap * dz
525
- lam = lam + alphad * dlam
526
- mu = mu + alphad * dmu
527
- if niq > 0:
528
- gamma = sigma * dot(z, mu) / niq
529
-
530
- # evaluate cost, constraints, derivatives
531
- f, df = f_fcn(x) # cost
532
- f = f * opt["cost_mult"]
533
- df = df * opt["cost_mult"]
534
- if nonlinear:
535
- hn, gn, dhn, dgn = gh_fcn(x) # nln constraints
536
- # g = gn if Ai is None else r_[gn, Ai * x - bi] # ieq constraints
537
- # h = hn if Ae is None else r_[hn, Ae * x - be] # eq constraints
538
- h = hn if Ai is None else r_[hn, Ai * x - bi] # ieq constr
539
- g = gn if Ae is None else r_[gn, Ae * x - be] # eq constr
540
-
541
- if (dhn is None) and (Ai is None):
542
- dh = None
543
- elif dhn is None:
544
- dh = Ai.T
545
- elif Ai is None:
546
- dh = dhn
547
- else:
548
- dh = hstack([dhn, Ai.T])
549
-
550
- if (dgn is None) and (Ae is None):
551
- dg = None
552
- elif dgn is None:
553
- dg = Ae.T
554
- elif Ae is None:
555
- dg = dgn
556
- else:
557
- dg = hstack([dgn, Ae.T])
558
- else:
559
- h = -bi if Ai is None else Ai * x - bi # inequality constraints
560
- g = -be if Ae is None else Ae * x - be # equality constraints
561
- # 1st derivatives are constant, still dh = Ai.T, dg = Ae.T
562
-
563
- Lx = df
564
- Lx = Lx + dg * lam if dg is not None else Lx
565
- Lx = Lx + dh * mu if dh is not None else Lx
566
-
567
- if len(h) == 0:
568
- maxh = zeros(1)
569
- else:
570
- maxh = max(h)
571
-
572
- gnorm = norm(g, Inf) if len(g) else 0.0
573
- lam_norm = norm(lam, Inf) if len(lam) else 0.0
574
- mu_norm = norm(mu, Inf) if len(mu) else 0.0
575
- znorm = norm(z, Inf) if len(z) else 0.0
576
- feascond = \
577
- max([gnorm, maxh]) / (1 + max([norm(x, Inf), znorm]))
578
- gradcond = \
579
- norm(Lx, Inf) / (1 + max([lam_norm, mu_norm]))
580
- compcond = dot(z, mu) / (1 + norm(x, Inf))
581
- costcond = float(absolute(f - f0) / (1 + absolute(f0)))
582
-
583
- hist.append({'feascond': feascond, 'gradcond': gradcond,
584
- 'compcond': compcond, 'costcond': costcond, 'gamma': gamma,
585
- 'stepsize': norm(dx), 'obj': f / opt["cost_mult"],
586
- 'alphap': alphap, 'alphad': alphad})
587
-
588
- if opt["verbose"] > 1:
589
- print("%3d %12.8g %10.5g %12g %12g %12g %12g" %
590
- (i, (f / opt["cost_mult"]), norm(dx), feascond, gradcond,
591
- compcond, costcond))
592
-
593
- if feascond < opt["feastol"] and gradcond < opt["gradtol"] and \
594
- compcond < opt["comptol"] and costcond < opt["costtol"]:
595
- converged = True
596
- if opt["verbose"]:
597
- print("Converged!")
598
- else:
599
- if any(isnan(x)) or (alphap < alpha_min) or \
600
- (alphad < alpha_min) or (gamma < EPS) or (gamma > 1.0 / EPS):
601
- if opt["verbose"]:
602
- print("Numerically failed.")
603
- eflag = -1
604
- break
605
- f0 = f
606
-
607
- if opt["step_control"]:
608
- L = f + dot(lam, g) + dot(mu, (h + z)) - gamma * sum(log(z))
609
-
610
- if opt["verbose"]:
611
- if not converged:
612
- print("Did not converge in %d iterations." % i)
613
-
614
- # package results
615
- if eflag != -1:
616
- eflag = converged
617
-
618
- if eflag == 0:
619
- message = 'Did not converge'
620
- elif eflag == 1:
621
- message = 'Converged'
622
- elif eflag == -1:
623
- message = 'Numerically failed'
624
- else:
625
- raise
626
-
627
- output = {"iterations": i, "hist": hist, "message": message}
628
-
629
- # zero out multipliers on non-binding constraints
630
- mu[find((h < -opt["feastol"]) & (mu < mu_threshold))] = 0.0
631
-
632
- # un-scale cost and prices
633
- f = f / opt["cost_mult"]
634
- lam = lam / opt["cost_mult"]
635
- mu = mu / opt["cost_mult"]
636
-
637
- # re-package multipliers into struct
638
- lam_lin = lam[neqnln:neq] # lambda for linear constraints
639
- mu_lin = mu[niqnln:niq] # mu for linear constraints
640
- kl = find(lam_lin < 0.0) # lower bound binding
641
- ku = find(lam_lin > 0.0) # upper bound binding
642
-
643
- mu_l = zeros(nx + nA)
644
- mu_l[ieq[kl]] = -lam_lin[kl]
645
- mu_l[igt] = mu_lin[nlt:nlt + ngt]
646
- mu_l[ibx] = mu_lin[nlt + ngt + nbx:nlt + ngt + nbx + nbx]
647
-
648
- mu_u = zeros(nx + nA)
649
- mu_u[ieq[ku]] = lam_lin[ku]
650
- mu_u[ilt] = mu_lin[:nlt]
651
- mu_u[ibx] = mu_lin[nlt + ngt:nlt + ngt + nbx]
652
-
653
- lmbda = {'mu_l': mu_l[nx:], 'mu_u': mu_u[nx:],
654
- 'lower': mu_l[:nx], 'upper': mu_u[:nx]}
655
-
656
- if niqnln > 0:
657
- lmbda['ineqnonlin'] = mu[:niqnln]
658
- if neqnln > 0:
659
- lmbda['eqnonlin'] = lam[:neqnln]
660
-
661
- # lmbda = {"eqnonlin": lam[:neqnln], 'ineqnonlin': mu[:niqnln],
662
- # "mu_l": mu_l[nx:], "mu_u": mu_u[nx:],
663
- # "lower": mu_l[:nx], "upper": mu_u[:nx]}
664
-
665
- solution = {"x": x, "f": f, "eflag": converged,
666
- "output": output, "lmbda": lmbda}
667
-
668
- return solution