Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 60131200CE0 for ; Thu, 27 Jul 2017 08:07:26 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 5E7F916A3F6; Thu, 27 Jul 2017 06:07:26 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 7A6AF16A3F3 for ; Thu, 27 Jul 2017 08:07:25 +0200 (CEST) Received: (qmail 83387 invoked by uid 500); 27 Jul 2017 06:07:24 -0000 Mailing-List: contact dev-help@poi.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "POI Developers List" Delivered-To: mailing list dev@poi.apache.org Received: (qmail 83361 invoked by uid 99); 27 Jul 2017 06:07:23 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 27 Jul 2017 06:07:23 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 57F081A1E16 for ; Thu, 27 Jul 2017 06:07:23 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 1.98 X-Spam-Level: * X-Spam-Status: No, score=1.98 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=2, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01] autolearn=disabled Authentication-Results: spamd2-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=dinom-ru.20150623.gappssmtp.com Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id oUwR1m-gPWpW for ; Thu, 27 Jul 2017 06:07:19 +0000 (UTC) Received: from mail-ua0-f178.google.com (mail-ua0-f178.google.com [209.85.217.178]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id AC7B05F6C7 for ; Thu, 27 Jul 2017 06:07:18 +0000 (UTC) Received: by mail-ua0-f178.google.com with SMTP id q25so114171358uah.1 for ; Wed, 26 Jul 2017 23:07:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dinom-ru.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=fN+N0dGcPuf6FgODGC72aihGxq8MKAKZi/y4Nqzw+Wg=; b=CojD3fmZdt1Xpy4XunYEQVbr0fH+DDNa4lLfkPK2qvToOS67I8N8uswJPYEksLVSvN F5JmFftIEnugcFjC/Da7+nQ4ud7s7I8zpFMHt49ugpAoo7hOOP+NCWFKwFW9Finqa1up j4AbzPusF6vEArFt6E3FQ5Sz9DAmgPj1mlgmVd7J/yTRA3jYXWZV1MGELMmXl0XW8j2w dcyGR7i9+6kSrFSoinWXa1MZg1GBdQKIkRQwmiyjXbNZxr1RCs+9A/FkNQljjo2HYJgP 4QxI1N1ZhnurUHQnMAhPw7MCEa28tQ4Aqk2Ct2GWaPlg+wwnUnZ9iszAg4ddq5Wa6wcv FQ5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=fN+N0dGcPuf6FgODGC72aihGxq8MKAKZi/y4Nqzw+Wg=; b=JENlTGHKTaaMuTXU7FrHNWfn7sFyfbRIcJV+Oa50/uq85jKFgYOAWphh291ifHERRK GehHQd/g79AKhC6cPMoQDEF/KI7tMGJwinPUfHn/7rMZ27wJUxKMcNCp3iho4EygZNm6 +tMzcFoytqKfmMPf1yaMNQ2NKkop4SbmYm2IdNZqQxY+JaTk2uRQg0PJoXIT+ltNnxzq luVmg/x3lyYoEXXO8QpmsM591Rqf/CzzeoxdAGHO+5HpORnNBgHHJYFW3c/FMhhMNMMk 2jWswPHfHqqc0KTcPJHNIx9o1UTuO+7g2acBJPe2hCI/bD3Fb8DP3oIZcGNTVHkHQSov FPLQ== X-Gm-Message-State: AIVw111gFNuiLatwMOzMs8T1Jwjik9eV/0Qkqh64VR1PE4Bk7smgh8jL CmaSpm83GW/B79InCkjeefSGA4pfsWawzp4= X-Received: by 10.176.2.68 with SMTP id 62mr2246572uas.202.1501135637242; Wed, 26 Jul 2017 23:07:17 -0700 (PDT) MIME-Version: 1.0 Received: by 10.176.85.70 with HTTP; Wed, 26 Jul 2017 23:07:16 -0700 (PDT) In-Reply-To: References: From: Yegor Kozlov Date: Thu, 27 Jul 2017 09:07:16 +0300 Message-ID: Subject: Re: Table Formula Manipulation and Matrix Function Implementation in HSSF/XSSF To: POI Developers List Content-Type: multipart/alternative; boundary="001a113d106e6af4d205554660e6" archived-at: Thu, 27 Jul 2017 06:07:26 -0000 --001a113d106e6af4d205554660e6 Content-Type: text/plain; charset="UTF-8" Even if we go for the Commons Math route we need to recognize and support the array formula syntax from the Formula Evaluator module. Correct me if I'm wrong, but POI still doesn't support arrays as formula arguments and constructions like below will fail : =SUM(C2:C11*D2:D11) =SQRT({1,2;3,4}) Once we support the array formula operands we can plug in Commons Math to do the actual computations. There was a patch a few years back https://bz.apache.org/bugzilla/show_bug.cgi?id=48292 which tried to address it. Unfortunately it wasn't applied. The code needed work and no one volunteered to finish it. It might be a good start to revisit it and integrate in trunk. On Wed, Jul 26, 2017 at 11:40 PM, Dominik Stadler wrote: > Na, the main test-runs should still verify all functionality with all > required dependencies, we are talking about a separate build-config which > verifies this specific requirement to not have the dependency being > introduced in other functionality unintentionally. > > Dominik. > > On Wed, Jul 26, 2017 at 9:58 PM, Robert Hulbert > wrote: > > > For personal clarification, tests will be generated for this > > functionality, however, these tests and the dependency will not be > included > > in the main test set? > > > > On 2017-07-26 11:58 (-0700), Greg Woolsey > wrote: > > > The runtime JARs for Commons Math are 2.2MB, the rest of the release > > > package is source and docs. If users really need the minimum required > > > packaging, they can use something like Maven Shade [1]. > > > > > > I like the idea of running tests without this dependency and just > > skipping > > > tests that need it. > > > > > > Perhaps we could use an annotation to identify tests to skip in a > > > particular run, so we don't need to maintain a master list? > > > > > > 1. https://maven.apache.org/plugins/maven-shade-plugin/ > > > > > > On Wed, Jul 26, 2017 at 11:20 AM Javen O'Neal > > wrote: > > > > > > > +1 to Apache Commons Math. > > > > > > > > Can we write tests to verify that this dependency is only needed for > > > > certain packages? I hope I'm wrong, but 20 MB is large enough that > some > > > > people may not want to update to newer versions of POI. > > > > > > > > On Jul 26, 2017 10:28 AM, "Greg Woolsey" > > wrote: > > > > > > > > > We aren't averse to dependency changes, we did one in the past > > year. My > > > > > personal preference is the Commons Math library, as it is also an > > Apache > > > > > project and more importantly still under active development. JAMA > > > > appears > > > > > dead, and calls itself a straw-man implementation. > > > > > > > > > > We could note that if a user doesn't need Excel matrix function > > > > evaluation > > > > > they would not need to include that library at run time. Until we > > start > > > > > using the Commons Math functionality for more stuff :) > > > > > > > > > > Actually, there are likely statistical functions we could implement > > using > > > > > it as well, among others. > > > > > > > > > > On Wed, Jul 26, 2017 at 9:18 AM Robert Hulbert < > bob951321@gmail.com> > > > > > wrote: > > > > > > > > > > > Following up, there are two external Matrix Libraries that I am > > > > familiar > > > > > > with (JAMA and Commons.Math3.Linear). Both of these libraries > > provide > > > > all > > > > > > the functionality necessary to emulate the Excel Matrix > > functionality. > > > > > The > > > > > > Linear library is 2MB and JAMA is ~20KB. I understand this would > be > > > > > adding > > > > > > a dependency to the project. Is there a preference on which > library > > > > would > > > > > > be used or is the preferred solution to implement the > functionality > > > > > > directly in POI? > > > > > > > > > > > > On 2017-06-27 15:51 (-0700), "Javen O'Neal" > > wrote: > > > > > > > Greg Woolsey has provided quite a few improvements on Table > > support > > > > for > > > > > > > XSSF recently (last 6-12 months). > > > > > > > > > > > > > > Question to the devs: Are tables part of the XLS binary file > > format, > > > > > and > > > > > > if > > > > > > > so are users interested in a common SS Table interface? > > > > > > > > > > > > > > Question to Robert: Is LLNL particularly interested in using > POI > > to > > > > > read > > > > > > > and write workbooks containing tables and matrix (table or > > array?) > > > > > > > functions? Or were they more interested in having an intern > help > > out > > > > on > > > > > > an > > > > > > > open source project and table support was one idea they had? > > > > > > > > > > > > > > > > > > > > > On Jun 27, 2017 1:01 PM, "Hulbert, Robert Douglas" < > > > > hulbert2@llnl.gov> > > > > > > > wrote: > > > > > > > > > > > > > > Hi, > > > > > > > > > > > > > > I'm a summer student at Lawrence Livermore National Laboratory > > and > > > > was > > > > > > > hired to find or implement POI's table formulas and matrix > > functions. > > > > > > > > > > > > > > Over the last week or so, I have checked the POI > page/Contributor > > > > > > > guidelines and have looked through the source code for handling > > this > > > > > > > functionality. > > > > > > > > > > > > > > Is anyone still interested in this functionality? If not, is > > there > > > > any > > > > > > > documentation on where this aspect left off? > > > > > > > > > > > > > > Thank you so much for any help you can give! > > > > > > > > > > > > > > Best Regards, > > > > > > > Robert Hulbert > > > > > > > > > > > > > > > > > > > ------------------------------------------------------------ > > --------- > > > > > > To unsubscribe, e-mail: dev-unsubscribe@poi.apache.org > > > > > > For additional commands, e-mail: dev-help@poi.apache.org > > > > > > > > > > > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: dev-unsubscribe@poi.apache.org > > For additional commands, e-mail: dev-help@poi.apache.org > > > > > --001a113d106e6af4d205554660e6--