From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id aDIfHolQ82NzigAAbAwnHQ (envelope-from ) for ; Mon, 20 Feb 2023 11:50:49 +0100 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id QJ0xHolQ82MuaAAA9RJhRA (envelope-from ) for ; Mon, 20 Feb 2023 11:50:49 +0100 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 3465E1C44D for ; Mon, 20 Feb 2023 11:50:49 +0100 (CET) Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=posteo.net header.s=2017 header.b=PyFQPFof; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=posteo.net ARC-Seal: i=1; s=key1; d=yhetil.org; t=1676890249; a=rsa-sha256; cv=none; b=O3ANjLA/jlJ6J6LdjWjiNbM0IyzTe+OpU+YbER9BCdSR1gyQweTTjMOmRjO/E6B0a7tV8e Gwp+KAp2TBAKJGKIevmLJoorn89nPdlHbmG3xKIG/fdeV5/GjXmoN9iD2CKxUdaU/qLdAc /Z3Qxt0VYGRLRDjwAZgxo+68J5UvppqtR7t7cHLAlNqngAk5UwfdB1leoaEON82GdWnpsM VCcNfb34KOZ3K/gX961vO3CUDh5JCjAKt1C8fOBXvZLVaGa0rEpA82Hvib4ZquVLLLuAJd jNn6mUT+tofw6gW7BOyEZAASl+WZRCpIN8+z3lMggSCjpuqoPK9cA8E7mR9Aig== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=posteo.net header.s=2017 header.b=PyFQPFof; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=posteo.net ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1676890249; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=18kf9l3t8ZwZJL/KXNxE0CUlS5dx8CbeW1YzQ8Hlwnk=; b=es+K9Gt35jdrYyxziIC645Yfg/xnBwMi0ykYszstQxSOwAh+fWEZWwvSkjgj/+edbmC72o M4a38jmTgLu8ILlAEn+Fqgpmp8tCYfnhl736xSNo+xs+6+GtKD82kXKT9ocKSgZrY3GaDs bdn821o14wsUCNDE+TOwr8rn8Znm59xi35sPlw8rotYGnzYpdwee2YST7OvtltwNU7/q5v oydydUcqyKGQ4uwyyRXumhaxNlcuP2WSdjE2d5TlmrvXEff98jyXbqIuk3ApPFEPX3fUwh 5HbnMEl1RwXfaC5UQI48Hi3Bd+4jJtn0HJ7JhaQKpzIeYDVAbnxD25N2kP9T/A== Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pU3kK-0004go-Uo; Mon, 20 Feb 2023 05:50:14 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pU3kD-0004eB-Ke for emacs-orgmode@gnu.org; Mon, 20 Feb 2023 05:50:05 -0500 Received: from mout01.posteo.de ([185.67.36.65]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pU3kB-0001ve-Cs for emacs-orgmode@gnu.org; Mon, 20 Feb 2023 05:50:05 -0500 Received: from submission (posteo.de [185.67.36.169]) by mout01.posteo.de (Postfix) with ESMTPS id 39B8C240027 for ; Mon, 20 Feb 2023 11:50:00 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1676890200; bh=874ThOpTMA1LlD1ReTcV9kJ185YgtUCyzPEnKdSfy58=; h=From:To:Cc:Subject:Date:From; b=PyFQPFofWMJItIZEonSi1qVCUi9FVRmzdxeTfXy5gG/woj919wRXCn0U+JALTSrUU xdpUVxnobTQ+GGSL1DklsDAq2a0B+3drGvWHf61FQj+2XglZTXkdDQ1rh2ZO0369pa ibcKnvjvjniRjLJCuCJs6eUWAukBcoVq3AlklcrHhCT1SVpzk2LLuoHfSCSpfJ5F+m +DzgnnoFJ6BG0cLfnDICwIOcuxz9JbF56CbDw4p+pcuEcv1yDMWwV2Ve6QsoMpBhru Hy0FIaKq5z7ytGc0u9En1zacqdBwDgF5Hmjus/eBlXRMwW0pKYXQ9bxBxR/xKqFeze heu7qyWkVFLaQ== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4PKzhR1Z2Sz9rxG; Mon, 20 Feb 2023 11:49:59 +0100 (CET) From: Ihor Radchenko To: tbanelwebmin Cc: emacs-orgmode@gnu.org Subject: Re: [ANN] orgtbl-fit In-Reply-To: <840f139e-d62f-a6ac-8691-b63afb4cd1d6@free.fr> References: <116c3126-32cc-44d0-9e95-e802161e1e84@app.fastmail.com> <87zgb90win.fsf@localhost> <87tu0qdc4k.fsf@localhost> <304d062e-c760-53ad-e442-ca646f2c892d@free.fr> <87a627ogg3.fsf@localhost> <073b5e6e-8c81-66c6-6a5e-19c5e10f0176@free.fr> <871qnhwpld.fsf@localhost> <840f139e-d62f-a6ac-8691-b63afb4cd1d6@free.fr> Date: Mon, 20 Feb 2023 10:50:39 +0000 Message-ID: <87zg98ehkw.fsf@localhost> MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=185.67.36.65; envelope-from=yantar92@posteo.net; helo=mout01.posteo.de X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: X-Migadu-Queue-Id: 3465E1C44D X-Spam-Score: -11.53 X-Migadu-Spam-Score: -11.53 X-Migadu-Scanner: scn0.migadu.com List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: emacs-orgmode-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-TUID: 6Fx5rfR+WdOV tbanelwebmin writes: >>> Examples & documentation can be read here: >>> https://github.com/tbanel/orgtblfit/blob/main/README.org >> Interesting. >> Could it be somehow integrated with TBLFM formulas? >> I imagine something like >> >> ? +?*year +?*passengers +?*(year-2016)*passengers >> >> , when set as a column value in table formula, to be auto-updated with >> actual coefficients upon re-calculating the table. >> ... > We need to specify the target column ("consumption" in this example). > Therefore, the formula could be something like that: > > $4 = fit (consumption = ? +?*year +?*passengers +?*(year-2016)*passengers) > It would benefit from other spreadsheet features, like constants and > remote references. Makes sense. > On the development side, the TBLFM handling is already quite a big chunk > of code. We must take care that such an additional feature do not add > complexity and maintenance burden. >From point of view of org-table.el, adding fitting functionality is mostly delegating the work to GNU Calc. Org side is just parsing the formula and transforming it to appropriate Calc function call. So, given that the parsing is extended cleanly, I do not think that maintenance burden will increase all that much. It may even benefit from someone taking a fresh look and possibly refactoring org-table TBLFM parser. > Orgtbl-fit as-is > ---------------- > > It is also possible to include orgtbl-fit as-is into Org Mode core. It > would sit side-by-side with the core without changing anything in its > code and its unit-tests. IMHO, it is not sufficiently integrated with org-table.el facilities in its current state. I'm afraid that we will have code duplication if include orgtbl-fit as is. BTW, the dollar replacement is something org-table can benefit from---a number of people are confused because "$" is treated specially by Calc. > Data-analysis toolkit > --------------------- > > From a higher perspective, we could give a consistent data-analysis > toolkit to Org Mode (and call it org-data-analysis.el). > > It would start with fitting, clustering & aggregation. Then, new > algorithms would be added upon user requests. > > Of course, there should be an interest among Org Mode users for such a > toolkit. We can, but it should be first and foremost added to GNU Calc. On Org side, we just need appropriate integration. Maintaining generic data analysis code in Org is out of Org's scope. Contributing to GNU Calc will also benefit GNU Calc users who don't use Org mode. -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at . Support Org development at , or support my work at