Return-Path: X-Original-To: apmail-commons-dev-archive@www.apache.org Delivered-To: apmail-commons-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 1C9CFE248 for ; Sat, 1 Dec 2012 22:09:30 +0000 (UTC) Received: (qmail 82484 invoked by uid 500); 1 Dec 2012 22:09:30 -0000 Delivered-To: apmail-commons-dev-archive@commons.apache.org Received: (qmail 82383 invoked by uid 500); 1 Dec 2012 22:09:30 -0000 Mailing-List: contact dev-help@commons.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "Commons Developers List" Delivered-To: mailing list dev@commons.apache.org Received: (qmail 82373 invoked by uid 99); 1 Dec 2012 22:09:30 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 01 Dec 2012 22:09:30 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of kberlin@gmail.com designates 209.85.216.171 as permitted sender) Received: from [209.85.216.171] (HELO mail-qc0-f171.google.com) (209.85.216.171) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 01 Dec 2012 22:09:23 +0000 Received: by mail-qc0-f171.google.com with SMTP id d1so1068732qca.30 for ; Sat, 01 Dec 2012 14:09:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=content-type:mime-version:subject:from:in-reply-to:date :content-transfer-encoding:message-id:references:to:x-mailer; bh=LW8g3lPf/24mH/8Czf+EApol52+WGNe9M4R7oc0O8aA=; b=ulv4Cn/ah7HtUX3CGJKdb8HgF3xN8ADAhGcDRQUjwrHXKz93+2zvro7d3as7Vd2PBD xhwfqrhNpXqa04jo9a1gbcRNOlQLq5XUb6EFvOdlhyq5b3mYxckMZYLv4OpvqFpP5Xhh toTomS41X5nU5KX1u3ZH5gksQVm8/SEsvKOwO6A38bbc8NF2w9kc8LLbrZ0rAqgulAfM lpy3qYiQ5l8+JijyuntyzrDJJSzDRp9hC4kcxdHz399vzPM9e1dV8LBkczqh+gS6Ba9d FvLOpr65RAzXoCkwoU7dLolmQG5+quaD8YUh5sg85tmRyQNIWhQ5nBuNNk0nX253MsiZ 60GQ== Received: by 10.49.48.43 with SMTP id i11mr10543486qen.3.1354399742759; Sat, 01 Dec 2012 14:09:02 -0800 (PST) Received: from [192.168.1.151] (pool-173-79-236-4.washdc.fios.verizon.net. [173.79.236.4]) by mx.google.com with ESMTPS id gu9sm5999883qab.4.2012.12.01.14.09.01 (version=SSLv3 cipher=OTHER); Sat, 01 Dec 2012 14:09:02 -0800 (PST) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 6.2 \(1499\)) Subject: Re: [Math] Old to new API ("MultivariateDifferentiable(Vector)Function") From: Konstantin Berlin In-Reply-To: <20121201213439.GI3397@dusk.harfang.homelinux.org> Date: Sat, 1 Dec 2012 17:09:00 -0500 Content-Transfer-Encoding: quoted-printable Message-Id: References: <20121130161135.GG20488@dusk.harfang.homelinux.org> <245DF7F3-1003-4A47-BFF3-6877A64F38D8@gmail.com> <50B8F24E.1060104@free.fr> <20121130190625.GB3397@dusk.harfang.homelinux.org> <50B91160.10708@free.fr> <20121130221558.GE3397@dusk.harfang.homelinux.org> <20121130224446.GF3397@dusk.harfang.homelinux.org> <5A67B3E0-0F48-444F-B146-7CB29BB8435E@gmail.com> <20121201213439.GI3397@dusk.harfang.homelinux.org> To: "Commons Developers List" X-Mailer: Apple Mail (2.1499) X-Virus-Checked: Checked by ClamAV on apache.org >>=20 >> My opinion is that the package should be organized by what it does = rather, than how it does it. >=20 > My proposal is based on what the user wants to do and on what input is > required in order to use the tools in the given package, where all > algorithms will share the same interface. >=20 I humbly disagree with your claim. The user does not want a vector nor a = Jcobian. The user has a problem, and they want to see their options for = a solution. That is why they will go into, for example, least-squares. = They will see that there are different kinds, so they will go into = linear, for example. There they will see all their options and what they = need to make it work. I also have a problem with how you targeting the package to naive people = who want to play around with packages. You want the package to be easily = accessible to people who require optimizations. I would imagine most = users have a good idea what kind of problem that they have are looking = for the optimizer that will solve their problem. By structuring the = packages in the way I describe, they first go through the general = problem that they have, and then go down into more specific detail with = every level. That seems to me the most natural. >> My thinking is >>=20 >> optim >> optim.scalar. >> optim.scalar.linear >> optim.scalar.socp (second order cone programming)' >> optim.scalar.qcqp >> optim.scalar.nonlinear >> optim.scalar.nonlinear.derivfree >> optim.scalar.nonlinear.derivfree.Powell, etc >> optim.scalar.nonlinear.newton >>=20 >> optim.scalar.univariate.* >>=20 >> optim.leastsquares.linear >> optim.leastsquares.nonlinear >=20 > IMHO, the problem with the above is that it is targetted to = optimization > experts (who would know what all the abbreviations mean and what to = look > for). > In the other approach, a non-expert can go to a package, read the = top-level > doc and start experimenting, knowing what to plug in. [I know, this is = not > a strong argument; but it lowers the barrier to entry. :-)] >=20 > Perhaps there are intersections between the two approaches. >=20 >> But I am flexible. Perhaps it is worth a look here: >> http://www.joptimizer.com/ >=20 > Thanks for the pointer. >=20 > Gilles >=20 >>=20 >>>=20 >>> Shall we also introduce entirely new packages? >>>=20 >>> optim >>>=20 >>> optim.scalar.noderiv >>> optim.scalar.noderiv.PowellOptimizer >>> optim.scalar.noderiv.SimplexOptimizer >>> optim.scalar.noderiv.CMAESOptimizer >>> optim.scalar.noderiv.BOBYQAOptimizer >>>=20 >>> optim.scalar.gradient >>> optim.scalar.gradient.NonLinearConjugateGradientOptimizer >>>=20 >>> optim.vector >>> optim.vector.jacobian >>> optim.vector.jacobian.AbstractLeastSquaresOptimizer >>> optim.vector.jacobian.LevenbergMarquardtOptimizer >>> optim.vector.jacobian.GaussNewtonOptimizer >>>=20 >>> optim.scalar.univariate.noderiv >>> optim.scalar.univariate.noderiv.BrentOptimizer >>>=20 >=20 > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org > For additional commands, e-mail: dev-help@commons.apache.org >=20 --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org For additional commands, e-mail: dev-help@commons.apache.org