# FuturePlans

### From OpenOpt

**Future Plans**

Features marked as "future plans" are intended to be done as soon as we shall encounter them in our needs - or someone will inform of willing to pay for it. |

According to the suggestion we decided to update the webpage with approximate prices for some entries. If you'll pay for it, your name (or name of your organization) can be mentioned in OpenOpt Changelog and release announcement as name of the sponsor of the new feature or the performed enhancement. The prices are in USD or Euro, by choice. Also we could consider your own propositions. |

Some of the features:

## Contents |

## General

- document some features of the software that are undocumented yet
- add to documentation some examples of connecting Python, OpenOpt, FuncDesigner to Other_languages via CORBA or Ice

## OpenOpt

- (150) perform graphics output in other Python thread, to remove delays for it in multi-core CPU systems
- (950 per each one) connect more solvers, e.g. Bonmin, CFSQP, CBC, CLP, QSopt, SoPlex, GuRoBi, mosek, Knitro, loqo, conopt, snopt
- (950 per each one) connect more solvers to QCQP class (maybe write our own, ralg-based)
- implement handling sparse SDP/SOCP problems
- (150) create GP class (geometric problems), cvxopt solver could be connected
- (500) speedup in several times for solvers de and pswarm on FuncDesigner problems (for oovar() or oovars(n) only, not for oovar(size=n), where n>1)
- connect OpenOpt to OpenOffice / LibreOffice Calc
- add control problems & network problems groups, connect solvers or write by ourselves

## ralg

- add large-scale implementation (curently nVars = 1..1000, that one allows up to ~100000)
- perform other handling of linear equality constraints if their number is rather big
- improve handling of nonlinear equality constraints

## gsubg

- (950) speed can be improved in several times
- parallel calculations could be involved

## interalg

- some more speedup ideas
- some more parallel computations could be implemented
- solving of nonlinear systems could be done in more fast and native way than casting to NSP (that is performed now) or using penalties
- auto-adjusted default values for solver parameters in some cases could be done
- (950) possibility to work on vector-variables (currently using oovar(size=n) is forbidden, but you could use oovars(n) instead)
- along with objective function tolerance implement tolerance criteria on variables (x[i]-x_opt[i])
- (150) add handling of float128 and float32 types (currently float64 is used)
- (950) implement an interalg-based solver for an NPC problem, e.g. searching graph stability number
- (950) some general ODE systems dy/dt = f(y,t) can be solved with specifiable accuracy
- seems like the interalg ideas can be very helpful in solving ODE and PDE with guarantied precision

## FuncDesigner

- add 2-D and N-dimensional splines
- (150 per each one) add more funcs like
**erf**and make them available for interalg - (15000) add any-order derivatives, like it is done in some Automatic Differentiation packages
- prevent FD myOOvar[i], myOOvar[i:j] and (myOOvar {< , eq, >} val)(tol=...) to be rendered into general linear constraints
- organize handling of DFP, QP etc and related examples
- improve Attached constraints (implement possibility to change their contol and turn them off, + some more features to be done)
- further work on ooSystem concept
- improve dot(matrix, ooarray), especially for matrices with lots of zeros
- (1500) ufuncs on ooarray (e.g. sin(a), cos(a) etc) should be reworked to speedup them
- (150) add possibility of handling sparse matrices by FD Translator

## DerApproximator

- (500) improve get_d2 speed
- involve parallel calculations where it's possible
- write function check_d2
- make get_d2 working on general f: R^n -> R^m (currently it was tested for m=1 only)
- write higher-order derivatives get_d3, maybe more

## SpaceFuncs

- Improving convenience of creating equations and constraints for optimization and solving systems of equations
- Add projection to polytope
- Improve graphic output with non-default options
- Rotation, inversion, central projection, etc operations
- Excircles