From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Zelphir Kaltstahl Newsgroups: gmane.lisp.guile.user Subject: Matrix or array operations library Date: Mon, 24 Dec 2018 23:01:39 +0100 Message-ID: <7a362a59-3a4d-44c8-f4cd-5b232b6dffce@gmail.com> References: NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Trace: blaine.gmane.org 1545688810 10302 195.159.176.226 (24 Dec 2018 22:00:10 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 24 Dec 2018 22:00:10 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.2.1 To: Guile User Original-X-From: guile-user-bounces+guile-user=m.gmane.org@gnu.org Mon Dec 24 23:00:06 2018 Return-path: Envelope-to: guile-user@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gbYGa-0002ZJ-Cs for guile-user@m.gmane.org; Mon, 24 Dec 2018 23:00:04 +0100 Original-Received: from localhost ([127.0.0.1]:38977 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gbYIg-0006IJ-Q5 for guile-user@m.gmane.org; Mon, 24 Dec 2018 17:02:14 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:58344) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gbYIB-0006I2-9L for guile-user@gnu.org; Mon, 24 Dec 2018 17:01:43 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gbYIA-0005BX-GZ for guile-user@gnu.org; Mon, 24 Dec 2018 17:01:43 -0500 Original-Received: from mail-ed1-x52e.google.com ([2a00:1450:4864:20::52e]:41969) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gbYIA-0005B4-9l for guile-user@gnu.org; Mon, 24 Dec 2018 17:01:42 -0500 Original-Received: by mail-ed1-x52e.google.com with SMTP id a20so3966617edc.8 for ; Mon, 24 Dec 2018 14:01:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:references:to:from:message-id:date:user-agent:mime-version :in-reply-to:content-transfer-encoding:content-language; bh=IzibDMJfF/YS3gG45xYuqQNxodM16YvzZFcaAb8oNYo=; b=J8K1+hZgx7maJcECTtouoLOQLnkF3bcOZI2JPZZBPLrSykdMtI834E9ynEaBR1Gghm DSNce2rhZMGOPZJzY2wGr84HNPfjxVe51aWiUBAXVr4OgKV1eYlTXoHvoBZDW7btofvx V6+B9/3ySdRh8VjWlA1oCKR372B1eYb25Nnr72bgfA4mlLNntjXJVBasJTaMq5Rixegc m2XFV7fNb2irM3Nix6L9H/m50S5nBMSE8Bv7S3N4/8uAQ+hcnKSY3qITpaVOuIiFUQPW 0N0Zio3vRoJ58GYUpq6Xu0C0bc9M5gLVNWkGGEEPohrKaurL8vOdefKA9HsDCaYBiMgK n/YA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:references:to:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=IzibDMJfF/YS3gG45xYuqQNxodM16YvzZFcaAb8oNYo=; b=omXAg5PFwoQufnjXzjzPeMjUyVl8zyNWceMuNTNPtf15kzCByJKI1Mc/T8qzMDiA9E gBvzJVB2yqJyyaMQyT9GfdFafH3bIEOJCnm1/LHiNGCaeB8ZcgRQHhuvdSuSVAkz07zE +22qba/TdGvMhIq1NAL5RWe59hf7cSFFlnhI1+X7tDmSoqXWaXL6vWLbZFnxYF6fxRRy X8mgrMxGldbVbeKIg4nLxC1GqgWrPPyE9tp7MD7FfCmqf9Kr8F3Iu6CN9GPztO8bF6OV iZ+1WhY4h2WdEJV9ngOtl3BzrO1WhfbYjEAIgaqFMEhEDip4WViRy5BRHmrmLt7AEiih Wiaw== X-Gm-Message-State: AA+aEWajOmlQPRFd5aKvKAz0rMEE8YrmyD5YnJAWHripYluwbpCfT9ly 7RtqWVz4wAgc5gSQQsU8BS/NDM3y X-Google-Smtp-Source: AFSGD/XI80APLHLlI7dyqAJ+0BAhDaju8FS0O9rB0oq89sTqyUJzUU6LlLCQcUZzfF+OrugrfpKeHg== X-Received: by 2002:a50:ad0b:: with SMTP id y11mr10989131edc.113.1545688900883; Mon, 24 Dec 2018 14:01:40 -0800 (PST) Original-Received: from ?IPv6:2a02:8109:8b80:3950:e964:df23:9ccd:d6f2? ([2a02:8109:8b80:3950:e964:df23:9ccd:d6f2]) by smtp.googlemail.com with ESMTPSA id n11-v6sm4818411ejh.74.2018.12.24.14.01.39 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 24 Dec 2018 14:01:40 -0800 (PST) X-Forwarded-Message-Id: In-Reply-To: Content-Language: en-US X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::52e X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane.org@gnu.org Original-Sender: "guile-user" Xref: news.gmane.org gmane.lisp.guile.user:15140 Archived-At: Hello Guile Users, Is there some library, that enables high performance matrix operations or even n-dimensional array operations? I am thinking of something like NumPy in the Python ecosystem. I think NumPy in turn also uses some lower level thing to do what it does. I think OpenBLAS or MKL, depending on the architecture. I wonder if there is any wrapper around OpenBLAS for Guile or something similar. I am writing a little code for matrix operations and currently I am using Guile arrays, as they are made of vectors and have constant access time, which is already great. My guess is, that this would be the right choice if using pure Guile. I am writing data abstraction procedures, so that later on I could exchange what is used to represent the data. Maybe, if there is something like NumPy or lower level, I should use that instead? (Would I have to learn how to use FFI first?) Or maybe Guile's implementation is already so fast, that it would not make that much difference to use a lower level thing? Currently I have only a little experimental program, started today, so no huge plan. OK, one can fantasize about stuff like Pandas data frames in Guile, but I have no illusion, that it is a work of a few days or even weeks. It would be nice to learn, how to use a low level thing or maybe even Pandas, if there are any such bindings for Guile. I could make the implementation use different representations, depending on a parameter or something like that. Regards, Zelphir