Return-Path: Delivered-To: apmail-commons-issues-archive@locus.apache.org Received: (qmail 32491 invoked from network); 14 Dec 2008 16:56:10 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 14 Dec 2008 16:56:10 -0000 Received: (qmail 39513 invoked by uid 500); 14 Dec 2008 16:56:20 -0000 Delivered-To: apmail-commons-issues-archive@commons.apache.org Received: (qmail 39433 invoked by uid 500); 14 Dec 2008 16:56:20 -0000 Mailing-List: contact issues-help@commons.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: issues@commons.apache.org Delivered-To: mailing list issues@commons.apache.org Received: (qmail 39421 invoked by uid 99); 14 Dec 2008 16:56:20 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 14 Dec 2008 08:56:20 -0800 X-ASF-Spam-Status: No, hits=-4.0 required=10.0 tests=RCVD_IN_DNSWL_MED X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 14 Dec 2008 16:56:05 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 6568A234C3C7 for ; Sun, 14 Dec 2008 08:55:44 -0800 (PST) Message-ID: <998544327.1229273744414.JavaMail.jira@brutus> Date: Sun, 14 Dec 2008 08:55:44 -0800 (PST) From: "Cyril Briquet (JIRA)" To: issues@commons.apache.org Subject: [jira] Updated: (MATH-216) Faster and more computationally-efficient Fast Fourier Transform implementation In-Reply-To: <539541043.1215802351722.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/MATH-216?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Cyril Briquet updated MATH-216: ------------------------------- Attachment: (was: RootsOfUnityOptimization-20081214.patch) > Faster and more computationally-efficient Fast Fourier Transform implementation > ------------------------------------------------------------------------------- > > Key: MATH-216 > URL: https://issues.apache.org/jira/browse/MATH-216 > Project: Commons Math > Issue Type: Improvement > Affects Versions: 1.2 > Reporter: Daniel Kuan > Priority: Minor > Fix For: 2.1 > > Attachments: RootsOfUnityOptimization-20081214.patch > > > Here are some suggestions on improving the speed and computational-efficiency of FastFourierTransformer. > 1. Store roots of unity as a double array of arrays instead of Complex array. > No need for all the functionality that comes with class Complex when all that is required are the values of the roots of unity. > 2. Keep track of the largest set of roots of unity calculated so far, and adopt Singleton pattern. > Subsequent requests for smaller sets of roots of unity can be derived from the largest set -- no need to recalculate the roots of unity from scratch. > 3. When computing the nth roots of unity, need only compute n/4 roots instead of all n roots. > Since the roots of unity lie along a circle of unity radius, trigonometric relations can be leveraged to reduce the number of roots that need to be computed from n to n/4. > 4. Execute transform algorithm on double primitives instead of on class Complex. > New instances of Complex are instantiated each time a simple arithmetic operation is performed on the Complex variables. Much time is lost to object creation and initialisation. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.