From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 89794 invoked by alias); 6 Jun 2018 18:28:55 -0000 Mailing-List: contact gsl-discuss-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gsl-discuss-owner@sourceware.org Received: (qmail 88659 invoked by uid 89); 6 Jun 2018 18:28:53 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.5 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy=H*Ad:U*gsl-discuss, H*r:sk:gsl-dis X-HELO: mail-oi0-f48.google.com Received: from mail-oi0-f48.google.com (HELO mail-oi0-f48.google.com) (209.85.218.48) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 06 Jun 2018 18:28:51 +0000 Received: by mail-oi0-f48.google.com with SMTP id i205-v6so6182673oib.1 for ; Wed, 06 Jun 2018 11:28:51 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:content-transfer-encoding; bh=kK49GyAnFU9sOR9NKXvsMIVWQtsKLqubKZkcs7fop+E=; b=hh9kgHKkuXHFi8NR4eCQTWj2ALDkElDVBeyYEDu3W8OKjJybXTB/pC4BNbh/4f/QF2 o5KUvz7DC5VvJJB0U/UC+81sDTE+BeOdCWGrMwx9m55KwJexcBYu3sYkW/tDoFU6pTuX 7aX66ZU20LEQXHBKgaraeKOQreGYKpbYN6NVkK9N2Pe5qwOY0ktO2sOCFM/GghKuNm2i DPINKMswGDOFyWR1XGS3abkuMCgD9wirJH3v7yJvuFw73UAwiqfLj9x+dKXMgwcqqHkp /DKm1ZMd3ysnMjVP6YggCIy0d3XDVwqt0evS/uv41qXx56Bn8eGi7oBJV40oPqPfOUNW yh2g== X-Gm-Message-State: APt69E1Vg52gMf6b+WvfA76yEtw9CFcZPZRcar91vBiuRzAMi674AaTz N3Du0+VLSQrD8/bjGSaXuCtEQLM0AjW7zssSeFSlNg== X-Google-Smtp-Source: ADUXVKJRSHbntwLyBeZwH6aLqmBtoTqmaav3EEdO/C3Hr1xybxLXJgsEk3RSk5C1cj7MBcuvekpCA7ea3xFYw7BFp94= X-Received: by 2002:aca:ba46:: with SMTP id k67-v6mr2171086oif.106.1528309729148; Wed, 06 Jun 2018 11:28:49 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Tito Sacchi Date: Wed, 06 Jun 2018 18:28:00 -0000 Message-ID: Subject: Re: intpart module? To: gsl-discuss@sourceware.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-SW-Source: 2018-q2/txt/msg00011.txt.bz2 Hi Patrick, Thank you for your suggestions. I'll proceed following your advice. Tito Sacchi 2018-06-06 4:33 GMT+02:00 Patrick Alken : > Hello, > > Thanks for some more details about what you want to do. It sounds from > your description that this would be a substantial amount of code to be > contributed to GSL (as opposed to one or two supporting functions, etc) > - perhaps even a brand new module with numerous functions under it. > > First note that GSL attempts to follow the GNU coding standards > (https://www.gnu.org/prep/standards/standards.html) as closely as > possible, to achieve a uniform look and feel to the code throughout the > library. Stability and clean interoperability is also a top priority for > GSL, so adding a large chunk of new code will undoubtedly come with bugs > and potential issues with interfacing with the rest of GSL. It is > important that the design of your new module is well planned and thought > out prior to adding it into the main GSL source tree, in order to > achieve the simplest and cleanest API interfaces, the best > implementation of the various algorithms you plan to use, etc. > > I recommend building your new module as a library extension, at least > initially. This will give myself and others the chance to review your > overall design, quality of the source code, etc, and make suggestions > for improvement before it is folded into the main library. There will > undoubtedly be multiple iterations of the code design before it is ready > to be put in GSL. > > As an example, I myself have added a new module recently to GSL called > gsl_movstat (moving window statistics). Prior to this, I had developed > this as an external library more than 6 months ago, and did a complete > redesign of that library twice in the last 6 months, before I knew it > was ready to be put into GSL. Even after I put it into GSL, I spent > several months writing tests, documentation, and tweaking the API calls > to try to achieve the best results. > > None of this is meant to be discouraging. I think this has the potential > to be a useful contribution to GSL. Its up to you now to do the work :) > > Patrick > > On 06/02/2018 01:26 AM, Tito Sacchi wrote: >> Hello, >> >> I understand your doubts about the inclusion of new features into GSL. >> I think that the combinatoric algorithms related to integer partitions a= re of >> general interest and useful for a wide range of subjects. >> The fact that many software companies have implemented packages >> (e.g. Wolfram's Combinatorica [1], Maplesoft's Iterator [2]) for these >> algorithms >> for their own programs proves the importance and the general-purpose pro= perty. >> >> Among the most common applications: >> - Young tableaux are useful for solving many basic combinatorial problem= s. >> For example, the answer to the question "How many ways are there to ar= range >> a group of 25 students into a 5x5 grid such that in every row and ever= y column >> their heights are in incresing order (each row/column is independent >> from each other)?" >> is greater than 700M, and can be efficiently calculated using the >> hook-length formula [3]: >> it corresponds to the number of standard Young tableaux [4] of shape >> [5, 5, 5, 5, 5]. >> - Also, they have applications in other fields of mathematics and in >> physics. By means of >> the Schur-Weyl duality [5] applied to the joint action of the >> symmetric group S_k and the >> general linear group GL(n) of invertible n x n matrices on tensor >> spaces, using both the >> hook-lenght formula [3] and the hook-content formula one can obtain >> the dimensions of >> the irreducible representations along with their multiplicities of >> S_k and GL(n). This has >> many applications in group representation theory, quantum >> information theory, quantum >> metrology, and particle physics. The implementation of this wouldn=E2= =80=99t >> even require >> (representation) group theory support in the library. >> >> For more information see the Wikipedia pages below. >> >> [1] http://reference.wolfram.com/language/Combinatorica/guide/Combinator= icaPackage.html >> [2] https://www.maplesoft.com/support/help/maple/view.aspx?path=3DIterat= or >> [3] https://en.wikipedia.org/wiki/Hook_length_formula >> [4] https://en.wikipedia.org/wiki/Young_tableau >> [5] https://en.wikipedia.org/wiki/Schur%E2%80%93Weyl_duality >> >> >> 2018-05-31 21:16 GMT+02:00 Patrick Alken : >>> Hello, >>> >>> I certainly encourage more people working on GSL! Though keep in mind= GSL >>> aims to be a general-purpose scientific computing library. I personally >>> don't work in combinatorics, so its difficult for me to gauge how many >>> people would benefit / use these new algorithms you propose. If indeed a >>> large number of users would like to see these algorithms in GSL, then >>> certainly I would like to add them. However if only a small number of >>> specialists would be interested, then I would say this work should be m= ade >>> into an extension library, which is as you say a self-contained external >>> library which may or may not rely on GSL itself. >>> >>> Perhaps as a first step you could give some examples of what kinds of >>> problems people can solve with these algorithms you are planning to cod= e? >>> >>> Patrick >>> >>> >>> On 05/31/2018 01:01 PM, Tito Sacchi wrote: >>>> Greetings, >>>> >>>> I=E2=80=99d like to start working on some code on integer partitions, >>>> combinatorics, and related algorithms >>>> (Young tableaux, hook lengths...) in a new module that I=E2=80=99d call >>>> =E2=80=9Cintpart=E2=80=9D (or =E2=80=9Cintparts=E2=80=9D, tell me). >>>> I have already read the GSL Homepage which says that =E2=80=9Cany new >>>> functionality is encouraged as >>>> packages=E2=80=9D, but such module isn=E2=80=99t very specific, and cr= eating a package >>>> would signify creating a totally >>>> different library which probably wouldn=E2=80=99t even use any GSL fun= ction >>>> (could we call it an extension?); >>>> then we=E2=80=99ll end up with another C library which probably won=E2= =80=99t get >>>> integrated into GSL, so I thought >>>> you might be interested in including it directly into the main library >>>> (obviously after testing ecc.). >>>> Just let me know if you prefer that I work on the anonymous clone of >>>> the Savannah repo, or that I >>>> start a separate project, maybe on GitHub. >>>> >>>> Yours sincerely, >>>> Tito Sacchi >>> >>> > >