{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,6,29]],"date-time":"2026-06-29T14:01:12Z","timestamp":1782741672395,"version":"3.54.5"},"reference-count":34,"publisher":"Association for Computing Machinery (ACM)","issue":"2","license":[{"start":{"date-parts":[[2007,6,1]],"date-time":"2007-06-01T00:00:00Z","timestamp":1180656000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Math. Softw."],"published-print":{"date-parts":[[2007,6]]},"abstract":"<jats:p>Object-oriented programming is a relatively new tool in the development of optimization software. The code extensibility and the rapid algorithm prototyping capability enabled by this programming paradigm promise to enhance the reliability, utility, and ease of use of optimization software. While the use of object-oriented programming is growing, there are still few examples of general purpose codes written in this manner, and a common approach is far from obvious. This paper describes OPT++, a C++ class library for nonlinear optimization. The design is predicated on the concept of distinguishing between an algorithm-independent class hierarchy for nonlinear optimization problems and a class hierarchy for nonlinear optimization methods that is based on common algorithmic traits. The interface is designed for ease of use while being general enough so that new optimization algorithms can be added easily to the existing framework. A number of nonlinear optimization algorithms have been implemented in OPT++ and are accessible through this interface. Furthermore, example applications demonstrate the simplicity of the interface as well as the advantages of a common interface in comparing multiple algorithms.<\/jats:p>","DOI":"10.1145\/1236463.1236467","type":"journal-article","created":{"date-parts":[[2007,9,14]],"date-time":"2007-09-14T13:44:55Z","timestamp":1189777495000},"page":"12","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":42,"title":["OPT++"],"prefix":"10.1145","volume":"33","author":[{"given":"J. C.","family":"Meza","sequence":"first","affiliation":[{"name":"Ernest Orlando Lawrence Berkeley National Laboratory"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"R. A.","family":"Oliva","sequence":"additional","affiliation":[{"name":"Ernest Orlando Lawrence Berkeley National Laboratory"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"P. D.","family":"Hough","sequence":"additional","affiliation":[{"name":"Sandia National Laboratories"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"P. J.","family":"Williams","sequence":"additional","affiliation":[{"name":"Sandia National Laboratories"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2007,6]]},"reference":[{"key":"e_1_2_1_1_1","unstructured":"Bartlett R. A. Moocho: Multifunctional object-oriented architecture for optimization user's guide. http:\/\/software.sandia.gov\/trilines\/packages\/docs\/dev\/packages\/moocho\/doc\/html\/ind.  Bartlett R. A. Moocho: Multifunctional object-oriented architecture for optimization user's guide. http:\/\/software.sandia.gov\/trilines\/packages\/docs\/dev\/packages\/moocho\/doc\/html\/ind."},{"key":"e_1_2_1_2_1","volume-title":"Department of Chemical Engineering","author":"Bartlett R. A.","unstructured":"Bartlett , R. A. 2001. An introduction to rSQP&plus;&plus;: An object-oriented framework for reduced-space successive quadratic programming. Report , Department of Chemical Engineering , Carnegie Mellon University , Pittsburgh, PA (Oct.). Bartlett, R. A. 2001. An introduction to rSQP&plus;&plus;: An object-oriented framework for reduced-space successive quadratic programming. Report, Department of Chemical Engineering, Carnegie Mellon University, Pittsburgh, PA (Oct.)."},{"key":"e_1_2_1_3_1","volume-title":"Tech. Rep. ANL\/MCS-TM-242-Revision 1.8, Argonne National Laboratory.","author":"Benson S.","year":"2005","unstructured":"Benson , S. , McInnes , L. C. , Mor\u00e9 , J. J. , and Sarich , J . 2005 . Tao users manual. Tech. Rep. ANL\/MCS-TM-242-Revision 1.8, Argonne National Laboratory. Benson, S., McInnes, L. C., Mor\u00e9, J. J., and Sarich, J. 2005. Tao users manual. Tech. Rep. ANL\/MCS-TM-242-Revision 1.8, Argonne National Laboratory."},{"key":"e_1_2_1_4_1","volume-title":"An Introduction to Object-Oriented Programming","author":"Budd T.","unstructured":"Budd , T. 1991. An Introduction to Object-Oriented Programming . Addison-Wesley , Reading, MA . Budd, T. 1991. An Introduction to Object-Oriented Programming. Addison-Wesley, Reading, MA."},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1007\/BF01589407"},{"key":"e_1_2_1_6_1","unstructured":"Couture G. Audet C. Dennis J. and Abramson M. 2006. Nonlinear optimization for mixed variables and derivatives. Online at http:\/\/www.gerad.ca\/~couturgiNOMAD.  Couture G. Audet C. Dennis J. and Abramson M. 2006. Nonlinear optimization for mixed variables and derivatives. Online at http:\/\/www.gerad.ca\/~couturgiNOMAD."},{"key":"e_1_2_1_7_1","unstructured":"Davies R. B. 2003. NEWMAT09 an experimental matrix package in C&plus;&plus;. Online at http:\/\/www. robertnz.net\/nm_intro.htm.  Davies R. B. 2003. NEWMAT09 an experimental matrix package in C&plus;&plus;. Online at http:\/\/www. robertnz.net\/nm_intro.htm."},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1190\/1.1437343"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1137\/0801027"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1007\/BF02275347"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/641876.641880"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/317275.317280"},{"key":"e_1_2_1_13_1","volume-title":"Tech. Rep. MS-03-001, School of Mathematics","author":"Gondzio J.","year":"2003","unstructured":"Gondzio , J. and Grothey , A . 2003 . Parallel interior point solver for structured quadratic programs: application to financial planning problems. Tech. Rep. MS-03-001, School of Mathematics , The University of Edinburgh . Gondzio, J. and Grothey, A. 2003. Parallel interior point solver for structured quadratic programs: application to financial planning problems. Tech. Rep. MS-03-001, School of Mathematics, The University of Edinburgh."},{"key":"e_1_2_1_14_1","volume-title":"Tech. Rep. MS-04-001, School of Mathematics","author":"Gondzio J.","year":"2004","unstructured":"Gondzio , J. and Grothey , A . 2004 . Solving nonlinear portfolio optimization problems with the primal-dual interior point method. Tech. Rep. MS-04-001, School of Mathematics , The University of Edinburgh . Gondzio, J. and Grothey, A. 2004. Solving nonlinear portfolio optimization problems with the primal-dual interior point method. Tech. Rep. MS-04-001, School of Mathematics, The University of Edinburgh."},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10107-003-0379-5"},{"key":"e_1_2_1_16_1","volume-title":"Tech. Rep. SAND2004-6391","author":"Gray G. A.","unstructured":"Gray , G. A. and Kolda , T. G . 2004. APPSPACK 4.0: Asynchronous parallel pattern search for derivative-free optimization . Tech. Rep. SAND2004-6391 , Sandia National Laboratories. Gray, G. A. and Kolda, T. G. 2004. APPSPACK 4.0: Asynchronous parallel pattern search for derivative-free optimization. Tech. Rep. SAND2004-6391, Sandia National Laboratories."},{"key":"e_1_2_1_17_1","unstructured":"Gropp W. Lusk E. and Skjellum A. 1994. Using MPI: Portable Parallel Programming with the Message-Passing Interface. The MIT Press Cambridge Massachusetts.   Gropp W. Lusk E. and Skjellum A. 1994. Using MPI: Portable Parallel Programming with the Message-Passing Interface. The MIT Press Cambridge Massachusetts."},{"key":"e_1_2_1_18_1","unstructured":"Holub A. I. 1992. C&plus; C&plus;&plus; Programming With Objects in C and C&plus;&plus;. McGraw-Hill New York NY.   Holub A. I. 1992. C&plus; C&plus;&plus; Programming With Objects in C and C&plus;&plus;. McGraw-Hill New York NY."},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1137\/S1052623498343799"},{"key":"e_1_2_1_20_1","volume-title":"Tech. Rep. SAND2000-8877","author":"Howle V. E.","unstructured":"Howle , V. E. , Shontz , S. M. , and Hough , P. D . 2000. Some parallel extensions to optimization methods in opt&plus;&plus; . Tech. Rep. SAND2000-8877 , Sandia National Laboratories. Howle, V. E., Shontz, S. M., and Hough, P. D. 2000. Some parallel extensions to optimization methods in opt&plus;&plus;. Tech. Rep. SAND2000-8877, Sandia National Laboratories."},{"key":"e_1_2_1_21_1","volume-title":"Tech. Rep. SAND2004-8055","author":"Kolda T. G.","year":"2004","unstructured":"Kolda , T. G. 2004 . Revisiting asynchronous parallel pattern search . Tech. Rep. SAND2004-8055 , Sandia National Laboratories. Kolda, T. G. 2004. Revisiting asynchronous parallel pattern search. Tech. Rep. SAND2004-8055, Sandia National Laboratories."},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1137\/S003614450242889"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1007\/BF01589116"},{"key":"e_1_2_1_24_1","volume-title":"Sundance: A high-level toolkit for parallel pde simulation and optimization. Online at http:\/\/csmr.ca.sandia.gov\/~klong\/sundance.html.","author":"Long K. R.","year":"2003","unstructured":"Long , K. R. 2003 . Sundance: A high-level toolkit for parallel pde simulation and optimization. Online at http:\/\/csmr.ca.sandia.gov\/~klong\/sundance.html. Long, K. R. 2003. Sundance: A high-level toolkit for parallel pde simulation and optimization. Online at http:\/\/csmr.ca.sandia.gov\/~klong\/sundance.html."},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1002\/(SICI)1096-987X(19960715)17:9<1142::AID-JCC6>3.0.CO;2-S"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1002\/jcc.540150606"},{"key":"e_1_2_1_28_1","volume-title":"Tech. Rep. 95-8222, Sandia National Laboratories.","author":"Meza J. C.","year":"1995","unstructured":"Meza , J. C. and Plantenga , T. D . 1995 . Optimal control of a CVD reactor for prescribed temperature behavior. Tech. Rep. 95-8222, Sandia National Laboratories. Meza, J. C. and Plantenga, T. D. 1995. Optimal control of a CVD reactor for prescribed temperature behavior. Tech. Rep. 95-8222, Sandia National Laboratories."},{"key":"e_1_2_1_29_1","volume-title":"Tech. Rep. 95-8223, Sandia National Laboratories.","author":"Moen C. D.","year":"1995","unstructured":"Moen , C. D. , Spence , P. A. , and Meza , J. C . 1995 . Optimal heat transfer design of chemical vapor deposition reactors. Tech. Rep. 95-8223, Sandia National Laboratories. Moen, C. D., Spence, P. A., and Meza, J. C. 1995. Optimal heat transfer design of chemical vapor deposition reactors. Tech. Rep. 95-8223, Sandia National Laboratories."},{"key":"e_1_2_1_30_1","volume-title":"Tech. Rep. MCS-P330-1092, Argonne National Laboratory.","author":"Mor\u00e9 J. J.","year":"1992","unstructured":"Mor\u00e9 , J. J. and Thuente , D. J . 1992 . Line search algorithms with guaranteed sufficient decrease. Tech. Rep. MCS-P330-1092, Argonne National Laboratory. Mor\u00e9, J. J. and Thuente, D. J. 1992. Line search algorithms with guaranteed sufficient decrease. Tech. Rep. MCS-P330-1092, Argonne National Laboratory."},{"key":"e_1_2_1_31_1","doi-asserted-by":"crossref","unstructured":"Mor\u00e9 J. J. and Wright S. J. 1993. Optimization Software Guide. SIAM Press Philadelphia PA.   Mor\u00e9 J. J. and Wright S. J. 1993. Optimization Software Guide. SIAM Press Philadelphia PA.","DOI":"10.1137\/1.9781611970951"},{"key":"e_1_2_1_32_1","volume-title":"An object-oriented library for molecular dynamics energy computations","author":"Oliva R. A.","unstructured":"Oliva , R. A. 2003. An object-oriented library for molecular dynamics energy computations . Tech. Rep. LBNL-53778, Lawrence Berkeley National Laboratory . Oliva, R. A. 2003. An object-oriented library for molecular dynamics energy computations. Tech. Rep. LBNL-53778, Lawrence Berkeley National Laboratory."},{"key":"e_1_2_1_33_1","volume-title":"Tech. Rep. TR04-19","author":"Padula A. D.","year":"2004","unstructured":"Padula , A. D. , Scott , S. D. , and Symes , W. W . 2004 . The standard vector library: A software framework for coupling complex simulation and optimization. Tech. Rep. TR04-19 , Rice University. Padula, A. D., Scott, S. D., and Symes, W. W. 2004. The standard vector library: A software framework for coupling complex simulation and optimization. Tech. Rep. TR04-19, Rice University."},{"key":"e_1_2_1_34_1","volume-title":"Tech. Rep. TR05-12","author":"Padula A. D.","year":"2005","unstructured":"Padula , A. D. , Scott , S. D. , and Symes , W. W . 2005 . A software framework for abstract expression of coordinate-free linear algebra and optimization algorithms. Tech. Rep. TR05-12 , Rice University. Padula, A. D., Scott, S. D., and Symes, W. W. 2005. A software framework for abstract expression of coordinate-free linear algebra and optimization algorithms. Tech. Rep. TR05-12, Rice University."},{"key":"e_1_2_1_35_1","volume-title":"The C&plus;&plus","author":"Stroustrup B.","unstructured":"Stroustrup , B. 1987. The C&plus;&plus ; Programming Language. Addison-Wesley , Reading, Massachusetts. Stroustrup, B. 1987. The C&plus;&plus; Programming Language. Addison-Wesley, Reading, Massachusetts."}],"container-title":["ACM Transactions on Mathematical Software"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1236463.1236467","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/1236463.1236467","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T14:52:07Z","timestamp":1750258327000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1236463.1236467"}},"subtitle":["An object-oriented toolkit for nonlinear optimization"],"short-title":[],"issued":{"date-parts":[[2007,6]]},"references-count":34,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2007,6]]}},"alternative-id":["10.1145\/1236463.1236467"],"URL":"https:\/\/doi.org\/10.1145\/1236463.1236467","relation":{},"ISSN":["0098-3500","1557-7295"],"issn-type":[{"value":"0098-3500","type":"print"},{"value":"1557-7295","type":"electronic"}],"subject":[],"published":{"date-parts":[[2007,6]]},"assertion":[{"value":"2007-06-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}