From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 55067 invoked by alias); 3 May 2018 16:32:22 -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 45997 invoked by uid 89); 3 May 2018 16:32:16 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 spammy=reusing, prone, initializes, rolling X-HELO: NAM01-BY2-obe.outbound.protection.outlook.com Received: from mail-by2nam01on0115.outbound.protection.outlook.com (HELO NAM01-BY2-obe.outbound.protection.outlook.com) (104.47.34.115) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 03 May 2018 16:32:14 +0000 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=patrick.alken@colorado.edu; Received: from palken-co-ll.ngdc.noaa.gov (140.172.179.43) by BN3PR0301MB1233.namprd03.prod.outlook.com (2a01:111:e400:403d::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.715.18; Thu, 3 May 2018 16:32:09 +0000 Subject: Re: New routines for moving window statistics and filters To: gsl-discuss@sourceware.org References: From: Patrick Alken Message-ID: <246e248c-ac5f-8f52-16c0-a519458b34ef@colorado.edu> Date: Thu, 03 May 2018 16:32:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-ClientProxiedBy: DM5PR12CA0011.namprd12.prod.outlook.com (2603:10b6:4:1::21) To BN3PR0301MB1233.namprd03.prod.outlook.com (2a01:111:e400:403d::21) X-MS-PublicTrafficType: Email X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020);SRVR:BN3PR0301MB1233; X-Microsoft-Exchange-Diagnostics: 1;BN3PR0301MB1233;3:gBGTL7bJRb4/SUJW8vJgQx7U9Gs2fIRmoTp+2qWQpK+ZYFh1ryfQ/0SQI3hqA20sRGa9ZaZCVACo6ncbmvTXTWIh+eKXmddhkdbLQg5H2r+gSio8reoGZPZ4Jl9uVMf35VRN81hX9McuYkJDR4pHPFs53oM3Zge/JGcC3UN8imjqiKrEvYDpa8bRB11uRBe+TOWK2TmZ7ZBHkvKhCBwUuBw822Aj4R5VPugGH5wwymHs7qqh6BegxPNzs3etpMVo;25:toGWA/imjwxDZ80cJTwLdxhvAmk6urT7XiiTiyGjCmkyebFvxyOuftvN/h2XW5XOEXcXU3HrmjkFHO/SD/R413VUp9rSATbi9LbgkAMFWOyA9IOAJCA2HQqHOfybfqx0X1DkCWhJxFn8LJ0v6mwC/ImtTrN7+tH+7j497Vbw7vj4CQXZ9DVTWij9dJiAj59hkGad3/3sl0h3TUTsKpnb+oAk7EHSd4Q7O1wdkynMLsNCZjaeS1uxWIAL7/EstKk4XdJi3jcZv+DnGtTEpBcq1bjYa4Aj5RIdhcBTEf9MjG4EkDzLXad+2EACLwgJDCwbeKh24Ti0Jjq+oVEUA99Gog==;31:jP8xSP0KgtNa3g5Y4yV6Xp0p6acWGV9NaRgajsUa28GJs0sXIsj+PPUHEXNhUWdsR60qHGSDAmH6LRanZhE4s9llM559n7GoOy9pTtPcVIsuGAPKtQCS7BZuNJpJinlwez+beHnKIM+SPll0Xa0ZbnPrl9Sp0ILTgMkAdthLqpNNk6NQMjXk6GfBcRfqWobPGZpSh7tfmGoEZm/MdK7ik+DZzPar8ae8/AnIt3m1vks= X-MS-TrafficTypeDiagnostic: BN3PR0301MB1233: X-Microsoft-Exchange-Diagnostics: 1;BN3PR0301MB1233;20:bSgLJqvLGlAsyEI3YrTlH2kvwRpIPQ6iDVo17UkP+fauGxLjr/pTDdsVxr7RSAo1O+WWvvOuWtS5sGXh7qRqcNr/DiTlyzM8ci5aJUmKZbRPVVNnooqoJ8dXTYKTAcvRgsQkM4UWeOAL1PgYyaNKpPAyMVV49JdGdd/OwrKmTfE5D+EYt4ND5mcHflaRpHyHf9DADE07+9/5ZYm6CkLH7bApBY7Bze0vTg02TrspGxD8ChPFpEE3FzYZ4oGH9XEFEyeCz1x2Qurr3RoxH1NbTEy/mWZrLrT+QZwHAKnIp2px2wZK1dsieGU5GkJQyNxEUlKjiUOUsMVcRbndftCwaRcuSKYR9ooKH1qKMq5bApn3boTp528/iiep4gOFqEkrk0YJT5p7no/EuEBXjM2gUgIQDKHlTWlN+Dx2IY8Sbye/0Dx9x3cN5IT70B2jkzc5BTToM5P13G5nxcWrD3a4HztSh6JzvanzhczUKsOfRbotNKEq+sXnrhCJ0bQDLtvp;4:EG2RZfgHtF6xZ3Tzwb3rSrTBB6uwiqoB+woWxnuUeAEgrnex1NhwUIzMgBCkTFb8dzkIs2AfKqvk8fxodZJT2cOXsuLVi4+qXebNp1400mc/M25+yCB3C87DzA5+7QSxA4QfwE7CEl4lZYwhTwohOc7EmErELV4/4JMbuymdPOaxOzY04aL5bhfFvAHA9Pu4abN0ICqUjHh7I+mj+vxpJtezbh4F3bYCT9UIu2d4VzIYskPp+KCoOuXJmE2Rb+GuaQl3tEyPKv8MATm7tsL6XA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040522)(2401047)(8121501046)(5005006)(93006095)(93001095)(3002001)(10201501046)(3231254)(944501410)(52105095)(6041310)(20161123558120)(20161123562045)(20161123564045)(20161123560045)(201703131423095)(201702281529075)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011);SRVR:BN3PR0301MB1233;BCL:0;PCL:0;RULEID:;SRVR:BN3PR0301MB1233; X-Forefront-PRVS: 066153096A X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(376002)(346002)(396003)(366004)(39860400002)(39380400002)(199004)(189003)(31686004)(6116002)(2870700001)(105586002)(7736002)(11346002)(88552002)(3846002)(2906002)(956004)(26005)(16526019)(25786009)(305945005)(476003)(446003)(36756003)(186003)(6486002)(106356001)(65826007)(486006)(75432002)(68736007)(53546011)(386003)(31696002)(8676002)(23676004)(2486003)(52116002)(316002)(52146003)(786003)(6506007)(58126008)(65806001)(5660300001)(6246003)(2616005)(66066001)(65956001)(8936002)(76176011)(81166006)(47776003)(45080400002)(81156014)(67846002)(478600001)(2351001)(97736004)(6916009)(229853002)(53936002)(6666003)(64126003)(50466002)(6512007)(2361001);DIR:OUT;SFP:1102;SCL:1;SRVR:BN3PR0301MB1233;H:palken-co-ll.ngdc.noaa.gov;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; Received-SPF: None (protection.outlook.com: colorado.edu does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTjNQUjAzMDFNQjEyMzM7MjM6ZGE0WGgySTdHY2hacmVUTURLSzV0T2pO?= =?utf-8?B?QzdIZ1pDNGZHZ20rU0lrNFNvaERRRjFkNi8ySk4wbGt6Rk5VcEYzQ2Nlcnk3?= =?utf-8?B?SUxkZFRLM2lZbmdhclN2Y0MvWjlxeTBKK2kzQmk4b0loaWFpQVRjWHhTS3dW?= =?utf-8?B?SHB6ZGlHWjZhRUVmOGlQMytwVS8yR0tnZlFCTVFiTmt0SkV6SnFxeEpGbTNp?= =?utf-8?B?dWZNY29mYlUwRDVkOHhPSTMyVkRDVytEcHVFK29SRGRwK3R1dDIxTHVCYmlQ?= =?utf-8?B?Qk1KWEtjVmNzSnI0RFpxdUhnUis5V2FHVTQ4THFsLzZrVE1ST3VKQjNFaUdm?= =?utf-8?B?Y2srL004OUcvMzRMbFIzd3RWbTEwRElsazJIak1vUWswWUFydVc2aFg2M0xv?= =?utf-8?B?UFlqNlNWVHF5Z2VTRjRjVXhPdVBPc3JlaENKQVMwWFhhN3MrcTQ0TE5kSHRz?= =?utf-8?B?VFFFbW11VW44TGxXWWN6Snhhc1dQWjJDSVIvL0o1RWNjTUk5Sk8wS1oveXdO?= =?utf-8?B?ZDJDUGZwd0FSdFNtQjM3WlRRVjdhQktBbmhFK25uY2kzeS9jeU9kNEFMS3d2?= =?utf-8?B?R3hQVFYzaE5uUWZUc0J6VjNMdGhLUWhTY0xucFZ0alFxVlBDMnJ1Z0xFRkRB?= =?utf-8?B?QlQ4dnB2N25qSDZST1NMNW1rN3Vsd3lFWnVHc3QxMGZkYUd5YktRK3hEZDV0?= =?utf-8?B?MWVQYmdoYVQvemNQVjBiemNmN29TanRPN3JQVDUrU1ZpejI0aW5TU0VPSnZn?= =?utf-8?B?c1p5dkp6TkhVMDFDaGVhai84Uy9lQ0F2alFudHB2THNJaVFyMnN2SHJXSXho?= =?utf-8?B?S2tId0V5OElPc3NoZXgyeHRVL0Y3cEgwSmJWREplOVpFSXluUzdadGhjUTFn?= =?utf-8?B?MUV0b2tzVk01RkZHbjd0RU5wVHk1TEZHYUZIcDBQZVRFbTdySnV2ajFaTkM1?= =?utf-8?B?dnphKzNSNUR2cU55dkNkdnJxK2c1V1F2elgrU1RhTjh4aytDQmpBd21DSXJH?= =?utf-8?B?WGRod2JIbktUT1QrK05wMW1LWCtmL04wc0VhcVZuWHhGYlkwVTl1TDFYbWRC?= =?utf-8?B?dmFkTXZGck0zbVR1eFBDdi9FOERnREVTY3BNc0FRTlhuZ3N5MDdQem9VOXN6?= =?utf-8?B?M3cyTTVtTWxPRlZBZFlTTFZCQlVMajFwakEvVG42cU5vd0NIWVlDS3BmVmh6?= =?utf-8?B?WThhNFBDT1ZrcW1pWWtDVW9STm1tM0JTUTBoZnpQMTk0K0ZOaEozUWIzN3F4?= =?utf-8?B?aEVBbzI5aWM0c0hETlp6UmovNHFLOUxWSDdqQUlBdUNrbWs5MysvME1WV291?= =?utf-8?B?enJHeXhBTUJLbFRjd0trZUZBemFuakpZVHJqV2phTTR5UXRBNkxoMWF3V0tz?= =?utf-8?B?NEVnNlE2MEpUOW1OaVEvUHRCeTFlMG9FbVEwdEdJdUVBNVYwcGVqWWJ5SnF4?= =?utf-8?B?T3BJbytYQ0xFQ2ZNSC8wNGtDbm9WaGJEQzd1a1BiYythL2xvTmZCeXRzVlVR?= =?utf-8?B?Mkx4a0lGK3RRRmlWOW1VWWJvRHVsemRDdXdqaURqVXE5RTA3OFpCd1FyNXVU?= =?utf-8?B?b0FEZVVHSVMrSVUwMjNjcVBSNW1KUlNaeTdVUFFmODNuVWNBSlVHMmdyWkhm?= =?utf-8?B?VW1kWFRsMzhMUGxhTVA5WXJDTGRhQ0dkMnlub3JRZ3ZEVzI1L1JPbXZKNXVw?= =?utf-8?B?dVM0UUZ6T1JOazQ1ZCtPTWk5WW5vd29KSVpYSlFLdzJyVmFpckpJMzVEdElJ?= =?utf-8?B?MkVpS0NQWExPV0tZS3ovRFJZLzVtWFp2YXcrU29pQ09jL2UrZVM1ZVZEY0Er?= =?utf-8?B?Uk0vbDYwMXhFN0w0WFdjb1hiTytkb2Jua1ZMc1NmZEJINDQ5azVocmVOU09E?= =?utf-8?B?MzAxaXpWc3pYcEU1a0p0Y1FoWmtZZHF2ZmRqMG1Ud3hBYVArdWRDc0hGWVJC?= =?utf-8?B?UkRSd1BRbmtRc0JVc1BTWmNEQVcxR1hTU04weisvMkcrUmhRd28rNi95a3dJ?= =?utf-8?B?cDN0a0pGWDE5dHNiTzFYZmtmUFBteC9iVG44eVQxNkJiTTdnM1dCWlBwMFVT?= =?utf-8?Q?YwfAyY=3D?= X-Microsoft-Antispam-Message-Info: ylAkvzkb0HkcOlo+qNCuylj4xJeKZHf29zvpdKBtSeFMEl2Ukl/pEtDwkhCsyOhtl2lydN9Z6QAH2ZQ2ahM1pFXm0kePudVQHthkGh6cPhNdYj+l14xCHS8nLJye99NKGsiJMO6OC/3DcheHFfdf2T+XkeJq580Jwe9eiTS3tRVF2vATy7m/nz8lcAytFitY X-Microsoft-Exchange-Diagnostics: 1;BN3PR0301MB1233;6:64DjbV8MalwxhPntf5n9P3zgHELQViCvNv+c4Rf/2nvwW/byfXvYtEB2rdC7uxiTjYsakIH8Cf8L9PZGeRvrOAo79+M6zr2hygsU+MtKFOrKcuewzSRRMTAJRPYq3o9sq04BS+BHVzkHML7BOTwcWXAb52emz677lcpDxqv8oz/2xEXlR3rYPksCajIbt0lId+EkUgWNpfrhEaXPc0n68K6xdP+SV7Kqxs+uqWBV5I9N68kAufIBMBS9EarEmsJuIjEgz0KbWbsnXbqylRAxZNYp2xaMy9Oj2B+9Ym7HOvpN53ZY8iaowsMpV/KGHrPfOpXCQUSlnYw56EBydoWJIIhZXNR/BZCgQdOMxUyyeUpJY/l7j8sisaIXxqDBo8XpuMHytPKs88VEcI3TZKFcD5YZScxtNO9UvCMFthXAwmKTXwIItYCwBl7FOCycL7BeGN8/2CGHH+WXwKMZ9fuLVQ==;5:LUJRhbUC5EETDFRhWD0LTwjzWluBaSixZRol9h4I11dIq9ag2p1qTpcRlX8NzOoLma5dppeMI8GSjXQaBe3ys0OJUJ116rMH4luDkbJNSvgaWc0CfgWO+uudHHpb+OMyeBjw8QfCAJTJEbW5hff21HIWQePOHNz4w/gXeiwOwfY=;24:5pN0/+NN0CXOetBuNCOIaKpyw3xYKtqetoM1jniwpiM6OENt2sfmm1OOYM2ecbZjewVTX2MoEdrpQdA9aPZx5hPkZol3iTpVAYKvjpbKRgg= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BN3PR0301MB1233;7:LAh2XykqAcGpvVYVRi5ERfJ2qQSIlmL+Sxau7U3L8rrN6BQOoXR2e31hKom7MgLrNbed1/KdLwVlFG/4PlKLrruDWQufERNnzleyj/j4a7zAdueK4/BDI3RLVyBINNHwumaNDN+M7rnqF9fH3NOEgeEKEeBOcG9s8Dsl+L1cywC47m0oibmOQ8bNdI0SffHDa9PzZysjZxGHU4nbTwCU23Ar3twqahCoG3uhYhHWcLGclGDoXYAa7KswgGflrYLJ X-MS-Office365-Filtering-Correlation-Id: f59dce28-06b5-41e5-19d6-08d5b1136ad8 X-OriginatorOrg: colorado.edu X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 May 2018 16:32:09.5491 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f59dce28-06b5-41e5-19d6-08d5b1136ad8 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3ded8b1b-070d-4629-82e4-c0b019f46057 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR0301MB1233 X-SW-Source: 2018-q2/txt/msg00003.txt.bz2 Brian,   Thanks for testing. gcc never complained about the void* arithmetic so I didn't catch this error. I have replaced these lines by casting the void pointers to unsigned char *, which should correct the issue. Can you try out the latest git and let me know if it fixes the issue? Due to the many different algorithms used in the moving statistics module, I am trying to keep the size of the workspace smaller by reusing the same workspace for the different algorithms. Therefore each moving window algorithm initializes a void* workspace as needed, hence the reason I am doing the pointer arithmetic. It seems that by casting everything to unsigned char *, it should conform to ansi C. I have tested it with strict compiler flags as well as compiling under the C89 and C99 standard. Let me know if it works now. Thanks, Patrick On 05/03/2018 04:36 AM, Brian Gladman wrote: > On 02/05/2018 21:58, Patrick Alken wrote: >> Dear GSL users/developers, >> >> I have added a new module called gsl_movstat to GSL, which provides >> routines for moving window statistics (also called sliding window >> statistics, rolling statistics, running statistics, etc). Currently >> there is support for the following: >> >> moving mean, sum, min/max, variance/stddev, median, MAD, q-quantile >> range, Q_n, S_n >> >> I have also added some robust statistics routines to the gsl_stats area, >> including MAD, S_n, Q_n, Gastwirth and trimmed mean routines. >> >> Finally, I added a new module called gsl_filter, which currently >> contains a small number of common filtering routines. Currently, there >> is 1 linear filter (Gaussian smoothing) and 3 nonlinear filters (median, >> recursive median and impulse-rejection filters). I would like to >> eventually add other common filters (like Butterworth, Chebyshev) and >> possibly some routines to allow users to design their own filters with >> various criteria. This probably won't happen before the next release >> however. >> >> I have put everything into the master branch of the git with >> documentation. Any feedback/suggestions are welcome. > Hi Patrick, > > I have been trying to add your new material to the Visual Studio build > of GSL and have found a very large number of errors with the Microsoft > compiler because of the assumption that a (void*) pointer points to an > object of length one. This is a non standard GCC extension. > > One of many examples is on line 363 of median.c is: > > state->minmax_state = vstate + sizeof(rmedian_state_t); > > where vstate is defined as a (void*). > > Although I could change all these (void*) to (char*), I am reluctant to > do this as it seems potentially very error prone. > > Since GSL is (I believe) supposed to be written in 'standard C' I also > assume that the use of this GCC extension needs to be removed anyway. > > I would hence be grateful for your advice on how to errors of this type. > > best regards, > > Brian Gladman